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

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

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

常见的模式

工厂模式:减少new 操作。

单例模式:避免大量new操作,创建一个实例,必须给其他对象提供这一实例,必须自行创建这个实例。

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

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

适配器模式:将各种截然不同的函数接口封装成统一的API

五大创建型模式:

工厂模式(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):

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值