《研磨设计模式》读书笔记-待续
阅读说明
选择这边书来精读,主要是因为这本书与实际编程结合的比较紧密。
阅读记录
2016年6月1日 开始
设计模式基础
设计模式是什么
设计模式是重复出现的特定问题的解决方案。
这里提到的接口的使用规范是,能使用接口的地方优先使用接口。这里与《effect java 2》中18条一样,优先使用接口,能用接口就不用抽象类。
设计模式分类
| 结构型 | 创建型 | 行为型 |
|---|---|---|
| 外观模式 | 单例模式 | 中介者模式 |
| 适配器模式 | 工程方法模式 | 观察者模式 |
| 代理模式 | 抽象工厂模式 | 命令模式 |
| 组合模式 | 生成器模式 | 迭代器模式 |
| 享元模式 | 原型模式 | 模板方法模式 |
| 装饰模式 | 。 | 策略模式 |
| 桥接模式 | 。 | 状态模式 |
| 。 | 。 | 备忘录模式 |
| 。 | 。 | 解释器模式 |
| 。 | 。 | 责任链模式 |
| 。 | 。 | 访问者模式 |
简单工厂模式
这个不在Gof的23个模式之列
所谓组件:从设计上讲,组件就是能够完成一定功能的封装体。
简单工厂就是在客户端上,一般最基础的教程是
List<String> list = new ArrayList<>();//java1.7
/**
这个标准用法没有问题,不过涉及到我们自己写的方法,接口的具体实现就会暴露在客户端上,如下:
Interface face = new IntefaceImplA();
Interface face = new IntefaceImplB();
*/
//工厂如下:
Inteface face = Factory.getNewInstance("A");
注意点如下:
- 简单工厂为了防止客户端无限创建实例,一般都把构造函数私有化。
- 一个组件或者一个模块级别一个简单工厂,不宜过大,不容易区分,太杂。
简单工厂思考
简单工厂的实质是 选择实现
如果想客户端更安全,不知道具体的实现,还可以使用配置文件,然后再Factory里面用反射获得实现类,然后给出实现对象。
外观模式 Facade
外观模式定义
为子系统中一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
外观模式基本逻辑
博主简介:

浙公网安备 33010602011771号