记一次 对设计模式的学习了解(六大原则,五大建立型模式,十一大行为型模式,七大结构型模式)

主要是大脑中有个印象,过程当中能想到就往上靠,想不到就想不到了。(摆手表情)设计模式

更新2019-05-28,看到对设计模式进行详细分析的文章  设计模式看了又忘,忘了又看?多线程

常见的模式

工厂模式:减小new 操做。并发

单例模式:避免大量new操做,建立一个实例,必须给其余对象提供这一实例,必须自行建立这个实例。函数

注册模式:全局共享,交换对象。ui

策略模式:面向对象多形式。spa

适配器模式:将各类大相径庭的函数接口封装成统一的API.net

五大建立型模式:

工厂模式(Factory method Pattern):减小new 操做。

  1. 简单工厂模式(静态工厂模式)          扩展性很差,单产品多层级,层级数量很少的状况下
  2. 工厂方法                                              一个产品的各个层级方面,层级多且支持扩展

 

抽象工厂 (Abstract Factory Pattern):  多个产品多个层级方面

 

单例模式(Singletion Pattern):避免大量new操做,建立一个实例,必须给其余对象提供这一实例,必须自行建立这个实例。

  • 只有一个实例;
  • 自行实例化(主动实例化)
  • 向整个系统提供这个实例
  1. 饿汉式单例模式                                   加载方式: 类 加载到 内存 的过程当中, 建立好了对象
  2. 懒汉式单例模式                                   加载方式: 类 第一次使用才建立对象:synchronized    同一时间点,只容许一个线程执行该方法

 

(多线程并发,节约内存)线程

建造者模式(Builder Pattern):

把原本强依赖的东西解绑(下降耦合),解决依赖问题,提升封装性设计

原型模式(Prototype Pattern):

提升建立对象的效率。代理

 

六大原则

单一职责原则(Single Responsibility Principle):

方法,接口,类   都有各自的方式进行拆分为单一原则。

好处:

  1. 类复杂性下降,实现什么职责都有清晰明确的定义
  2. 复杂性下降,可读性提升
  3. 可读性提升,维护性提升
  4. 变动引发的风向下降,扩展性,维护性提升

里氏替换原则(Liskov Substitution Principle):

父子关系,继承,不重写方法。

优势:

  1. 代码共享,减小建立类的工做量,每一个子类都拥有父类的方法、属性;
  2. 提升重用性;
  3. 子   高于  父;
  4. 可扩展性提升;
  5. 提升产品或项目的开放性

缺点:

  1. 父到子,继承是侵入性的;
  2. 下降代码灵活性;
  3. 加强耦合性;
  4. 父类严重影响子类

依赖倒置原则(Dependence Inversion Principle):

下降类的耦合性,提升灵活的处理。

最佳:

  1. 变量的表面类型尽可能是  接口或抽象类;
  2. 任何类都不该该从具体类派生;
  3. 尽可能不覆写基类方法;
  4. 结合里氏替换原则使用。

面向接口思惟

 

接口隔离原则(Interface Segregation Principle):

把接口中不常一块儿使用的方法拆分到不一样的接口。(不用每一个方法都实现一次!)

 

迪米特法则(Law of Demeter Principle):最少知识原则(Last Knowledge ~)

高内聚,低耦合(是你的就别给别人,不是你的就别拿)

 

开闭原则(Open Closed Principle):

对扩展开放,对修改封闭。

 

(下面的模式没有仔细看)

十一大行为型模式

模板方法(Template Method Pattern)

 

中介者模式(Mediator Pattern)

减小没必要要的依赖,下降类间的耦合(MVC,依赖关系剥离)

命令模式(Command Pattern)

进行类的解耦,可扩展性增长;

责任链模式(Chain of Reponsibility Pattern)

策略模式(Strategg Pattern)

配合  工厂模式

迭代器模式(Iterator Pattern)

最普遍的

观察者模式(Observer Pattern)

消息队列消费,Android 开发中的事件触发机制

状态模式(State Pattern)

下降代码复杂性,提升可维护性;

有不少  if-else 的语句,可替换!

备忘录模式(Memento Pattern)

回滚很是重要

解释模式(Interpreter Pattern)

访问者模式(Visitor Pattern)

 

七大结构型模式

适配器模式(Adapter Pattern):

桥接模式(Bridge Pattern):

组合模式(Composite Pattern):

装饰模式(Decorator Pattern):

外观模式(Facade Pattern):

享元模式(Flyweight Pattern):

代理模式(Proxy Pattern):

 

 

 

 

本文分享 CSDN - 阿……莫西林。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索