设计模式简介

一、什么是设计模式

程序设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。
程序设计模式这个术语是在1990年代由Erich Gamma等人从建筑设计领域引入到计算机科学中来的。这个术语的含义还存有争议。算法不是设计模式,因为算法致力于解决问题而非设计问题。设计模式通常描述了一组相互紧密作用的类与对象。设计模式提供一种讨论软件设计的公共语言,使得熟练设计者的设计经验可以被初学者和其他设计者掌握。设计模式还为软件重构提供了目标。

二、遵循模式原则

设计原则七大原则

单一职责原则(Single Reponsibility Principle)是尽量让一个类负责一个接口(功能)。
开闭原则(Open/Close Principle)是指编写类的时候,要符合对类扩展开放,对类的修改关闭。
里氏替换原则(Liskov substitution Principle)是指我们的编写子类,可以在保证业务正确的情况下,替换掉父类。
接口隔离原则(InterfaceSegregation Principle)是指接口应该保持单一性,一个接口干一件事情。不要合并多个接口到一个接口。
依赖反转原则(Dependency InversionPrinciple)指高层模块不应该依赖底层模块,具体就是Controller使用Service的接口,而不应该直接使用Service具体类。
迪米特原则/最少知识原则(Least Knowledge Principle)是指使用类和被使用类之间有个中介,达到使用者尽可能少的知道被使用者的信息。也就是如果客户端要使用service,那么客户端直接使用service的中介就好了。

三、所有设计模式特点

创建型模式:描述的是根据需求怎样创建对象。
结构型模式:描述的是如何处理类或者对象之间的关系,通过某种布局组成一个比较完善的结构。然后方便客户端使用。
行为型模式:描述多个类或者对象如何协同处理单个对象无法完成的任务。(程序在运行时复杂的流程控制)。我们应该根据 自己的应用场景,选择合适的模式类型,再定位具体的设计模式。

类型 设计模式 描述
创建型 Factory 模式 被实例化的子类
AbstactFactory 模式 针对一个类的唯一实例
Singleton模式 单选按钮
Builder模式 如何创建一个组合对象
Prototype 模式 针对被实例化的类
结构型 Bridge模式 对象的实现
Adapter 模式 针对对象的接口
Decorator模式 针对对象的职责,不生成子类
Composite 模式 模式 一个对象的结构和组成
Flyweight模式 对象的存储开销
Facade模式 对一个子系统的接口
Proxy模式 如何访问一个对象;该对象的位置
行为型 Template 模式 对算法中的某些步骤
Strategy模式 算法
State模式 对象的状态
Observer模式 对多个对象依赖于另外一个对象,而这些对象又如何保持一致
Memento模式 对一个对象中哪些私有信息存放在该对象之外,以及在对什么时候进行存储
Mediator 模式 对象间怎样交互、和谁交互
Command模式 何时、怎样满足一个请求
Visitor模式 某些可作用于一个(组)对象上的操作,但不修改这些对象的类
Chain of Responsibility模式 满足

你可能感兴趣的:(C++设计模式,c++,设计模式,windows,单例模式,代理模式)