笔筒虫
笔筒虫
全部文章
分类
Java多线程&并发(13)
Java常用类库(5)
Java常识(6)
Java虚拟机(6)
MySQL数据库(7)
《深入理解Java虚拟机》读书小册(8)
《深入理解Java虚拟机》读书笔记(7)
剑指offer题解(13)
未归档(65)
算法基础(5)
计算机操作系统(3)
计算机网络(6)
通过UML和小DEMO学习设计模式(10)
归档
标签
去牛客网
登录
/
注册
笔筒虫的博客
全部文章
(共154篇)
附:单例模式的破坏
序列化对象对单例模式的破坏与恢复 首先这是一个饿汉式的单例对象构建方式,一般情况下获取到的都是同一个单例对象 但是当序列化写入本地再读入内存时,会重新创建一个单例对象 为什么会在读入序列化后的对象时会让单例模式失效呢? 这儿从readObject()方法入手 进入这个方法后:p...
2019-06-07
0
637
10-命令模式(Command)
定义: 将"请求"封装成对象,以便使用不同的请求 命令模式解决了应用程序中对象的职责以及它们之间的通信方式(即命令者和执行者完全解耦) 适用场景 请求调用者和请求接收者需要解耦,使得调用者和接收者不直接交互 需要抽象出等待执行的行为 优点 降低耦合 容...
2019-06-06
1
517
09-观察者模式(Observer)
附:或叫***模式(Listener) 定义: 定义了对象之间的一对多依赖,让多个观察者对象同时监听某个主题对象,当主题对象发生变化时,它的所有依赖者(观察者)都会 收到通知并更新 适用场景: 关联行为场景,建立一套触发机制 优点 观察者和被观察者之间建立一个抽象的耦合...
2019-06-06
0
491
08-策略模式(Strategy)
定义: 定义了算法家族,分别封装起来,让它们之间可以互相替换, 此模式让算法的变化不会影响到使用算法的用户。 可以通过策略模式清除大量的if..else。 适用场景 系统有很多类,而他们的区别仅仅在于他们的行为不同 一个系统需要动态地在几种算法中选择一种 优点: 满足开闭...
2019-06-06
0
658
07-代理模式(Proxy)
概述: 控制对其它对象的访问。 使用场景: 保护目标对象 增强目标对象 优点: 代理模式能将代理对象与真实被调用的目标对象分离 一定程度上降低了系统的耦合度,扩展性好 保护目标对象 增强目标对象 缺点: 代理模式会造成系统设计中类的数目增加 在客户端和目标对象增加一个代理对象,...
2019-06-06
0
536
06-装饰者模式(Decorator)
概述: 为对象动态添加功能。 装饰者(Decorator)和具体组件(ConcreteComponent)都继承自组件(Component),具体组件的方法实现不需要依赖于其它对象,而装饰者组合了一个组件,这样它可以装饰其它装饰者或者具体组件。所谓装饰,就是把这个装饰者套在被装饰者之上,从而动态...
2019-06-06
0
540
05-适配器模式(Adapter)
概述: 把一个类接口转换成另一个用户需要的接口,使原本接口不兼容的类可以一起工作 适用场景: 已经存在的类,它的方法和需求不匹配时(方法结果相同或相似) 不是软件设计阶段考虑的设计模式,是随着软件维护,由于 不同产品、不同厂家造成功能类似而接口不相同情况下的解决方案 优点: 能提高类的...
2019-06-06
0
511
04-原型模式(Prototype)
概述: 使用原型实例指定要创建对象的类型,通过复制这个原型来创建新对象 不需要知道任何创建的细节,不调用构造函数 适用场景: 类初始化消耗较多资源 new产生的一个对象需要非常繁琐的过程(数据准备、访问权 限等 构造函数比较复杂 循环体中生产大量对象时 优点: 原型模式性能比直接ne...
2019-06-06
0
567
03-建造者模式(Builder)
定义: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程 可以创建不同的表示 用户只需指定需要建造的类型就可以得到它们,建造过程及细节不需要知道 适用场景: 如果一个对象有非常复杂的内部结构(很多属性) 想把复杂对象的创建和使用分离 优点: 封装性好,创建和使用分离 扩展性好、建造...
2019-06-06
0
529
02-简单工厂&工厂方法&抽象工厂
1、简单工厂(Simple Factory) 概述: 在创建一个对象时不向客户暴露内部细节,并提供一个创建对象的通用接口。 错误的方式: 正确的方式: 简单工厂把实例化的操作单独放到一个类中,这个类就成为简单工厂类,让简单工厂类来决定...
2019-06-06
0
538
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
末页