概述
:用于评价一个设计模式的使用效果的重要指标之一
类型
:
概述
:用于控制类的粒度大小,一个类只负责一个功能领域中的相应职责
。
地位
:是实现高内聚、低耦合的指导方针
示例
:开发人员针对某CRM(客户关系管理)系统中客户信息图形统计模块提出了如图所示的初始设计方案结构图,
分析
:CustomerDataChart 类承担了太多的职责,违背了单一职责原则。因此需要对该类进行拆分,使其满足单一职责原则
概述
:一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况进行扩展
地位
:是面向对象的可复用设计的第一块基石
运用
:为了满足开闭原则,需要对系统进行抽象化设计,抽象化是开闭原则的关键。在 Java、C# 等编程语言中,可以为系统定义一个相对稳定的抽象层。而将不同的实现行为移至具体的实现层中完成。
概述
:所有引用基类(父类)的地方必须能透明地使用其子类对象
地位
:是实现开闭原则的重要方式之一
运用
:在运用里氏替换原则时,应该将父类设计为抽象类或者接口,让子类继承父类或实现父类接口,并实现在父类中声明的方法。
概述
:抽象不应该依赖于细节,细节应该依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。
地位
:是面向对象设计的请要实现机制之一
运用
:要求在程序代码中传递参数时或在关联关系中,尽量引用层次高的抽象层类,即使用接口和抽象类进行变量类型声明、参数类型声明、方法返回类型声明,以及数据类型的转换等,而不要用具体类来做这些事件。
概述
:使用多个专门的接口,而不使用单一的总接口概述
:尽量使用对象组合,而不是继承来达到复用的目的
运用
:合成利用原则就是在一个新的对象里通过关联关系(包括组合关系和聚合关系)来使用一些已有的对象,使之成为新对象的一部分。
概述
:一个软件实体应当尽可能少地与其他实体发生相互作用
地位
:如果一个系统符合迪米特法则,那么当其中某一个模块发生修改时,就会尽量少地影响其他模块,扩展会相对容易
运用
:不要和"陌生人"说话,只与你的直接朋友通信