程序猿必须了解的8种设计模式

1. 单例模式
有些时候,允许自由创建某个类的示例没有意义,还可能造成系统性能下降(创建开销),不如这个类只能创建一个实例,那么就做成单例模式。
2. 工厂模式
a. 简单工厂
如果A类需要调用一个B类的方法,让B类实现一个IB接口,而A类与IB接口耦合——重新定义一个IBFactory,由该类来创建IB实例,用IB来创建并调用B类。
可以避免硬编码,提高可维护性和可扩展性。
b. 抽象工厂
“工厂的工厂”,可以让客户端的代码与被调用对象的实现类、具体的工厂类分离。
3. 代理模式
第一种情形:只要客户端不能或不想直接访问被调用对象(比如创建开销过大,或者对象的功能不足以满足需求,或者被调用对象在远程主机上),那么就创建一个代理对象返回给客户端适用;第二种情形是:当目标对象的功能不足以满足客户端需求时,系统可以创建一个代理对象,增强原目标对象的功能(如借助Proxy和InvocationHandler)
4. 命令模式
形参中包含一个函数的封装,类似回调机制。
5. 策略模式
实现一个策略类,用策略类来决定调用哪个类,类似多态。
6. 门面模式Facade
多加一层中间层,把一些需要按步骤依次调用的类方法封装到一起。
7. 桥接模式
把变化部分分离开来,从而将多个维度的变化彻底分离。最后提供一个管理类来组合不同维度上的变化,通过这种组合来满足业务的需要。这个管理类就起到桥梁作用。
如书中举的例子:辣/不辣的牛肉/猪肉面。那么就把辣/不辣&猪肉/牛肉视为不同维度的变化而分离。
8. 观察者模式
类似事件监听机制。
陕西弈聪软件信息技术股份有限公司
电话:13679229477    02989322522
陕西省西安航天基地神州四路科为城墅20栋4301