设计模式是一套面向对象的代码设计经验总结,是在编程领域被反复使用,被多数人知晓,而且经过分类整理的代码设计方法。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
1设计原则:
六大设计原则:单一职责原则,里氏代换原则,开放-封闭原则,依赖倒转原则,合成/聚合复用原则,迪米特法则
单一职责原则
单一职责原则的定义比较简单:对于一个类,应该只有一个引起它变化的原因
遵循单一职责原则的好处有:降低类的复杂度,一个类只负责一项职责,其逻辑肯定比负责多项职责简单;提高类的可读性,提高系统的可维护性。
里氏代换原则
里氏代换原则的定义:子类型必须能够替换它们的父类型。
只有满足了里氏代换原则后,也就是说子类可以替代父类出现,并且不影响程序的功能时,父类才能真正的得到复用,并且子类可以在父类的基础上添加新的行为。
开放-封闭原则
开放-封闭原则的定义是:程序的实体对象(模块,类,函数等)应该可以进行扩展,但不应该可以修改。
开放-封闭原则具有两个特征:
1对于扩展是开放的;
2对于修改是封闭的;
依赖倒转原则
依赖倒转原则的定义是:程序的高层模块不应该依赖于低层模块,但两者都应该依赖于抽象;抽象不应该依赖于具体细节,而细节应该依赖于抽象。
使用依赖倒转原则意味着上层类不直接使用底层类,它们使用接口作为抽象层。在这种情况下,在上层类中创建底层类的对象时不能直接使用new 关键字。可以使用一些创建型设计模式,例如 工厂方法,抽象工厂和原型模式。
模板设计模式是依赖倒转原则的一个例子。
合成/聚合复用原则
合成/聚合复用原则的定义是:尽量不使用类继承,而尽量使用合成/聚合。
合成/聚合复用原则的优缺点:
1 新对象存取子对象的唯一方法就是通过子对象的接口
2:这种复用是黑箱的复用,因为子对象的内部细节是新对象看不见的。
3:这种复用更好地支持封装的特性。
4:这种复用实现上互相依赖性是比较小的。
5:每一个新的类都可以将焦点集中在一个任务之上。
6:这种复用可以在运行时动态的进行,新的对象可以动态地引用与子对象类型相同的对象。
7:作为复用手段几乎可以应用到任何环境中去。
合成/聚合复用原则的缺点就是系统中会有较多的对象需要管理。
迪米特法则
迪米特法则的定义:如果两个类之间不必直接通信,则着两个类不应该发生直接的相互作用。如果其中的一个类需要调用另一个类的某个方法,可以通过第三方转发这个调用。