迭代器模式
提供访问集合的方法,并不暴露集合内部
组合模式
允许客户使用一致的方式处理对象集合或单个对象。
状态模式
允许对象在运行时不断发生状态的变化
状态模式侧重于程序运行时状态的不断变化,而策略模式往往只有一种最好的委托模式
代理模式
包装一个对象,提供一些访问控制
虚拟代理:代理大开销对象,延迟加载(如在对象加载出来前,加载较小对象替代)
远程代理:代理网络另一边的对象,增加解析等操作,用于通信
保护代理:控制一些数据方法的操作
复合模式和MVC
复合模式:在一个解决法案中结合了多个设计模式,以解决一般或重复发生的问题
MVC:最经典的一种复合模式,全称是模式—视图—控制器(Model—View—Controller)。将业务逻辑,数据和界面显示进行了解耦。
MVC包含的一般模式:
1:观察者模式,主题-模型,观察者-控制器、视图。当模型发生变化时,解耦通知了控制器和视图,模型永远不知道他们俩的存在。
2:组合模式:视图的UI部分常常为树形结构的,使用组合模式,可统一对集合对象和单一对象的操作。
3:策略模式:视图组合控制器(策略),视图可动态调整使用不同的控制器策略,而完全不知道控制器如何处理用户输入。
etc...
面向对象原则
1、多用组合善用继承。(组合更加灵活,继承方法全包含)
2、类应该对扩展开发,而对修改关闭。(增新不除旧)
3、依赖抽象而非具体类。(依赖倒置,都应该依赖抽象)
4、只和你的密友交谈(关系不深(只有一两个方法要调用),增加第三方)
5、单一责任,每个类责任越单一越好。
6、如何出现父类的地方,一定能用子类替换