主要是大脑中有个印象,过程当中能想到就往上靠,想不到就想不到了。(摆手表情)设计模式
更新2019-05-28,看到对设计模式进行详细分析的文章 设计模式看了又忘,忘了又看?多线程
常见的模式
工厂模式:减小new 操做。并发
单例模式:避免大量new操做,建立一个实例,必须给其余对象提供这一实例,必须自行建立这个实例。函数
注册模式:全局共享,交换对象。ui
策略模式:面向对象多形式。spa
适配器模式:将各类大相径庭的函数接口封装成统一的API.net
五大建立型模式:
工厂模式(Factory method Pattern):减小new 操做。
- 简单工厂模式(静态工厂模式) 扩展性很差,单产品多层级,层级数量很少的状况下
- 工厂方法 一个产品的各个层级方面,层级多且支持扩展
抽象工厂 (Abstract Factory Pattern): 多个产品多个层级方面
单例模式(Singletion Pattern):避免大量new操做,建立一个实例,必须给其余对象提供这一实例,必须自行建立这个实例。
- 只有一个实例;
- 自行实例化(主动实例化)
- 向整个系统提供这个实例
- 饿汉式单例模式 加载方式: 类 加载到 内存 的过程当中, 建立好了对象
- 懒汉式单例模式 加载方式: 类 第一次使用才建立对象:synchronized 同一时间点,只容许一个线程执行该方法
(多线程并发,节约内存)线程
建造者模式(Builder Pattern):
把原本强依赖的东西解绑(下降耦合),解决依赖问题,提升封装性。设计
原型模式(Prototype Pattern):
提升建立对象的效率。代理
六大原则
单一职责原则(Single Responsibility Principle):
方法,接口,类 都有各自的方式进行拆分为单一原则。
好处:
- 类复杂性下降,实现什么职责都有清晰明确的定义
- 复杂性下降,可读性提升
- 可读性提升,维护性提升
- 变动引发的风向下降,扩展性,维护性提升
里氏替换原则(Liskov Substitution Principle):
父子关系,继承,不重写方法。
优势:
- 代码共享,减小建立类的工做量,每一个子类都拥有父类的方法、属性;
- 提升重用性;
- 子 高于 父;
- 可扩展性提升;
- 提升产品或项目的开放性
缺点:
- 父到子,继承是侵入性的;
- 下降代码灵活性;
- 加强耦合性;
- 父类严重影响子类
依赖倒置原则(Dependence Inversion Principle):
下降类的耦合性,提升灵活的处理。
最佳:
- 变量的表面类型尽可能是 接口或抽象类;
- 任何类都不该该从具体类派生;
- 尽可能不覆写基类方法;
- 结合里氏替换原则使用。
面向接口思惟
接口隔离原则(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源创计划”,欢迎正在阅读的你也加入,一块儿分享。