标签:客户端 源代码 描述 继承 不能 关系 图片 地方 并行
GoF(Gang of Four,GoF分别是 Erich Gamma,Richard Helm,Ralph Johoson 和 John Vlissides) 4 位著名的软件工程学者,他们在 1994 年归纳发表了 23 种在软件开发中使用频率较高的设计模式,旨在用模式来统一沟通方面面向对象方法在分析、设计和实现间的鸿沟。
GoF 将模式的概念引入到软件工程领域,这标志着软件模式的诞生。软件模式是将模式的概念应用于软件开发领域,即软件开发的总体指导思想或参照样板。软件模式并非仅限于设计模式,还包括架构模式、分析模式和过程模式等,实际上,在软件生存周期的每一个阶段都存在这一些被认同的模式。
软件模式基本结构:
设计模式是在特定环境下为解决某一通用软件设计问题提供的一套定制的解决方案,该方案描述了对象和类之间的相互作用。
设计原则名称 | 定义 | 使用频率 |
---|---|---|
单一职责原则 | 一个对象应该只包含单一的职责,并且该职责被完整的封装在一个类中 | ★★★★ |
开闭原则 | 软件实体应当对扩展开放,对修改关闭 | ★★★★★ |
里氏代换原则 | 所有引用基类的地方必须能透明的使用其子类的对象 | ★★★★★ |
依赖倒转原则 | 高层模块不应依赖低层模块,它们都应依赖于细节。抽象不应该依赖于细节,细节应该依赖于抽象 | ★★★★★ |
接口隔离原则 | 客户端不应该依赖那些它不需要的接口 | ★★ |
合成复用原则 | 优先使用对象组合,而不是继承来达到复用的摸底 | ★★★★ |
迪米特法则 | 每一个软件单位对其他的单位都只有最少的只是,二位局限于那些与本单位密切相关的软件单位 | ★★★ |
每个类尽量提供接口或抽象类,或者两者都具备。
变量的声明类型尽量是接口或者是抽象类。
任何类都不应该从具体类派生。
使用继承时尽量遵循里氏替换原则。
单一职责原则:一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分。核心就是控制类的粒度大小. 将对象解耦. 提高其内聚性
降低类的复杂度。一个类只负责一项职责,其逻辑肯定要比负责多项职责简单得多。
提高类的可读性。复杂性降低,自然其可读性会提高。
提高系统的可维护性。可读性提高,那自然更容易维护了。
变更引起的风险降低。变更是必然的,如果单一职责原则遵守得好,当修改一个功能时,可以显著降低对其他功能的影响。
接口隔离原则:客户端不应该被迫依赖于它不使用的方法,一个类对另一个类的依赖应该建立在最小的接口上
接口尽量小,但是要有限度。一个接口只服务于一个子模块或业务逻辑。
为依赖接口的类定制服务。只提供调用者需要的方法,屏蔽不需要的方法。
了解环境,拒绝盲从。每个项目或产品都有选定的环境因素,环境不同,接口拆分的标准就不同深入了解业务逻辑。
提高内聚,减少对外交互。使接口用最少的方法去完成最多的事情。
迪米特法则:如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,通过第三方转发调用降低类之间的耦合度,提高模块的相对独立性
降低了类之间的耦合度,提高了模块的相对独立性。
由于亲合度降低,从而提高了类的可复用率和系统的扩展性。
合成复用原则:在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。
标签:客户端 源代码 描述 继承 不能 关系 图片 地方 并行
原文地址:https://www.cnblogs.com/chonglu/p/14920923.html