设计模式是软件设计的推荐方案,描述如何组织代码来解决常见的设计问题,它是高层次的设计方案,与具体的实现细节无关。也是代码设计经验的总结。
可以提高代码的可重用性,可读性,可维护性和可靠性,提高效率
分为三个大类:创建型模式、结构型模式、行为型模式;
提供实例化方法,在特点条件下提供合适的对象创建方法: 将对象的创建和使用分开,因为对象的创建会消耗资源,所以需要单独研究对象如何高效的问题
包括:单例模式、工厂方法模式、抽象工厂模式、创建者模式、原型模式
处理实体间的关系,使得实体间能够更好的协同工作:对象的创建问题解决之后,对象的组成和对象之间的依赖关系又成为了新的问题,合理的对象结构、继承和依赖依赖关系会影响程序的可维护性、代码的健壮性,耦合性
包括:代理模式、适配器模式、桥接模式、组合模式等
当对象的创建,对象的结构和对象之间的依赖关系问题解决之后,剩下的就是对象的行为问题,对象的行为设计的好,对象的行为就更加清晰协作效率就会提高:
包括:访问者模式、观察者模式、备忘录模式、迭代器模式、解释器模式、状态模式、策略模式、命令模式等
一个类只负责一项职责,尽量做到类只有一个行为原因引起变化;
子类可以扩展父类的功能,但不能改变原有父类的功能;
依赖于抽象而不依赖于具体。
使用多个隔离的接口, 降低类之间的耦合度。
一个实体应当尽量少的与其他实体之间发生相互作用
用抽象构建架构,用实现扩展,也就是说对扩展开放,对修改关闭。