标签:封装 结构型模式 高内聚低耦合 cat business 通用 规范 建立 桥接
设计模式有两种分类方法,即根据模式的目的来分和根据模式的作用的范围来分。
1.1.根据模式是用来完成什么工作来划分,这种方式可分为创建型模式、结构型模式和行为型模式 3 种。
MVC 模式(MVC Pattern)
业务代表模式(Business Delegate Pattern)
组合实体模式(Composite Entity Pattern)
数据访问对象模式(Data Access Object Pattern)
前端控制器模式(Front Controller Pattern)
拦截过滤器模式(Intercepting Filter Pattern)
服务定位器模式(Service Locator Pattern)
传输对象模式(Transfer Object Pattern)
1.2.设计模式的作用
1. 代码重用性(相同功能的代码,不需要多次编写)
2. 代码可读性(也就是编程规范性)
3. 代码可拓展性(当需要增加新的功能的时候,非非常的方便,也就是可维护性)
4. 代码可靠性(当我们增加新的功能后,对原有的功能没有影响)
5. 使得程序呈现高内聚低耦合的特性
设计模式的好处
帮助我们将应用组织成容易了解,容易维护,具有弹性的架构,建立可维护的OO系统,要诀在于随时想到系统以后可能需要的变化以及应付变化的原则。
设计模式事是程序员在面对同类软件工程设计问题所总结出来的有用的经验,模式不是代码,是某类问题的解决方案,设计模式代表了 最佳实践 这些解决方案是众多软件开发人员经过相当长的一段时间的实验和错误总结出来的 设计模式的本质提高 软件的维护性 通用性 和扩展性 并降低软件的复杂度 设计模式埠局限于某种语言
根据模式是主要用于类上还是主要用于对象上来分,这种方式可分为类模式和对象模式两种。
表 1 介绍了这 23 种设计模式的分类。
范围\目的 | 创建型模式 | 结构型模式 | 行为型模式 |
---|---|---|---|
类模式 | 工厂方法 | (类)适配器 | 模板方法、解释器 |
对象模式 | 单例 原型 抽象工厂 建造者 |
代理 (对象)适配器 桥接 装饰 外观 享元 组合 |
策略 命令 职责链 状态 观察者 中介者 迭代器 访问者 备忘录 |
前面说明了 GoF 的 23 种设计模式的分类,现在对各个模式的功能进行介绍。
必须指出,这 23 种设计模式不是孤立存在的,很多模式之间存在一定的关联关系,在大的系统开发中常常同时使用多种设计模式,希望读者认真学好它们。
开闭原则的意思是:对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。
里氏代换原则是面向对象设计的基本原则之一。里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。LSP 是继承复用的基石,只有当派生类可以替换掉基类,且软件单位的功能不受到影响时,基类才能真正被复用,而派生类也能够在基类的基础上增加新的行为。里氏代换原则是对开闭原则的补充。实现开闭原则的关键步骤就是抽象化,而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。
这个原则是开闭原则的基础,具体内容:针对接口编程,依赖于抽象而不依赖于具体。
这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。它还有另外一个意思是:降低类之间的耦合度。由此可见,其实设计模式就是从大型软件架构出发、便于升级和维护的软件设计思想,它强调降低依赖,降低耦合。
最少知道原则是指:一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。
合成复用原则是指:尽量使用合成/聚合的方式,而不是使用继承。
一个类被改变的原因不能超过一个,也就是说,一个类只有一个职责,如果职责过多,代码就会臃肿,可读性更差,也更难以维护。其实上单一职责原则和接口隔离原则有一定的关系,接口隔离以后,职责就单一了,实现这个接口的类的职责自然也就单一了。但是接口隔离关注的是抽象层,单一职责关注的是两者兼而有之,偏重于实现。
在 1994 年,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人合著出版了一本名为 Design Patterns - Elements of Reusable Object-Oriented Software(中文译名:设计模式 - 可复用的面向对象软件元素) 的书,该书首次提到了软件开发中设计模式的概念。
四位作者合称 GOF(四人帮,全拼 Gang of Four)。他们所提出的设计模式主要是基于以下的面向对象设计原则。
对接口编程而不是对实现编程。
优先使用对象组合而不是继承。
标签:封装 结构型模式 高内聚低耦合 cat business 通用 规范 建立 桥接
原文地址:https://www.cnblogs.com/aaaazzzz/p/12831347.html