设计原则
单一职责原则
一个类只负责一个功能领域中的相应职责,或者可以定义为,就一个类而言,应该只有一个引用引起它的变化。
开闭原则
一个软件实体应该对扩展开发,对修改关闭。即软件实体应该在不修改原有代码的情况下,对其进行扩展。这里的软件系统既可以是一个单独的类,也可以是多个类组成的局部结构,甚至是一个软件模块。
抽象化是实现开闭原则的关键。
里氏代换原则
所有引用父类的地方必须能够透明地使用其子类对象。
里氏代换原则是实现开闭原则的重要方法之一,在程序中尽量使用父类类型来对对象进行定义,而在运行在确定其子类类型,用子类对象替换父类对象。
依赖倒转原则
抽象不应该依赖于细节,细节应该依赖于抽象,通俗地讲,要针对接口编程,而不是针对实现编程。
依赖倒转原则要求我们在程序代码中传递参数时或者在关联关系时,尽量引用层次高的抽象层类,即使用接口和抽象类进行变量声明,参数类型声明,方法返回类型声明以及数据类型转换等,而不要使用具体类来做这些事情。
接口隔离原则
使用多个专门的接口,而不使用单一的总接口,即外部调用不应该依赖那些它不需要的接口。
合成复用原则
尽量使用对象组合,而不是继承来达到复用的目的。
迪米特法则
一个软件实体应该尽可能少的与其他实体发生相互作用。
迪米特法则可以降低系统的耦合度,使类与类之间保持松散耦合关系。
迪米特法则要求我们在设计系统时,如果两个类之间没有不必彼此直接通信,那么这个两个对象就不应该发生直接的相互引用,如果其中一个对象需要调用另一个对象的某个方法,那么可以通过引入第三方类来实现,也就是通过第三方类来降低系统的耦合度。
结构型模式
适配器模式
代理模式
外观模式
桥接模式
组合模式
装饰模式
享元模式
创建型模式
简单工厂模式
工厂方法模式
抽象工厂模式
单例模式
原型模式
建造者模式
行为型模式
策略模式
观察者模式
迭代器模式
责任链模式
状态模式
访问者模式
命令模式
模板方法模式
备忘录模式
中介者模式
解释器模式
示例代码