六大原则
单一职责原则
类的职责要单一,不能将太多的职责放在一个类中
开闭原则
对扩展是开放的,但对修改是关闭的,即在不修改一个软件实体的基础上去扩展其功能
里氏代换原则
一个可以接受基类对象的地方必然可以接受一个子类对象.里氏代换原则是对“开-闭”原则的补充。实现“开闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。里氏替换原则中,子类对父类的方法尽量不要重写和重载。因为父类代表了定义好的结构,通过这个规范的接口与外界交互,子类不应该随便破坏它
依赖倒转原则
要针对抽象层编程,而不要针对具体类编程.不与具体类交互,而与具体类的上层接口交互
接口隔离原则
使用多个专门的接口来取代一个统一的接口.每个接口中不存在子类用不到却必须实现的方法,如果不然,就要将接口拆分。
合成复用原则
在系统中应该尽量多使用组合和聚合关联关系,尽量少使用甚至不使用继承关系
迪米特法则
一个类对自己依赖的类知道的越少越好。无论被依赖的类多么复杂,都应该将逻辑封装在方法的内部,通过public方法提供给外部。这样当被依赖的类变化时,才能最小的影响该类。
设计模式的分类
创建型模式,五种,关注对对象创建的灵活性。
- [单例模式] :确保某一个类只有一个实例,并且提供一个全局访问点。
- [建造者模式]: 用来创建复杂的复合对象。
- [工厂方法模式]:让子类来决定要创建哪个对象。
- [抽象工厂模式]:创建多个产品族中的产品对象。
- [原型模式]:通过复制原型来创建新对象。
结构型模式,七种,关注类和对象的组合
- [代理模式] :控制客户端对对象的访问。
- [组合模式]:将整体与局部(树形结构)进行递归组合,让客户端能够以一种的方式对其进行处理。
- [适配器模式] :将原来不兼容的两个类融合在一起。
- [装饰者模式] :为对象添加新功能。
- [享元模式] :使用对象池来减少重复对象的创建。
- [外观模式] :对外提供一个统一的接口用来访问子系统。
- [桥接模式]:将两个能够独立变化的部分分离开来。
行为型模式,十一种,关注对象之间的通信
- [策略模式]:封装不同的算法,算法之间能互相替换。
- [状态模式] :根据不同的状态做出不同的行为。
- [责任链模式] :将事件沿着链去处理。
- [观察者模式]:状态发生改变时通知观察者,一对多的关系。
- [模板方法模式]:定义一套流程模板,根据需要实现模板中的操作。
- [迭代器模式] :提供一种方法顺序访问一个聚合对象中的各个元素。
- [备忘录模式] :保存对象的状态,在需要时进行恢复。
- [访问者模式] :稳定数据结构中,定义新的操作行为。
- [中介者模式]:将网状结构转变为星型结构,所有行为都通过中介。
- [解释器模式] :定义语法,并对其进行解释。
- [命令模式]:将请求封装成命令,并记录下来,能够撤销与重做。 参考链接