常见设计模式

来源:互联网 发布:mac连不上无线鼠标 编辑:程序博客网 时间:2024/04/29 04:32

Android开发中常见设计模式

1.工厂方法模式(5)

​ 属于类创建型模式。又叫工厂方法模式,又被成为多态工厂模式,因为它完全符合开闭原则。工厂父类负责定义创建产品对象的公共接口,工厂子类负责不同产品的具体实现,增强了代码的扩展性。

​ 开闭原则:类对于扩展是开放的,但是对于修改是封闭的。

​ 包含有四个角色:Product抽象产品,ConcreteProduct体产品,Factory抽象工厂,ConcreteFactory具体工厂。

​ 当只有一个具体工厂时,在具体工厂中可以创建所有的产品对象,并且工厂设计方法为静态设计方法时,工厂方法模式将退化为简单工厂模式。

工厂模式保持了简单工厂模式的优点,且客服了简单工厂模式的缺点,完全符合开闭原则。但是在增加新工厂时,会成对增加系统类数, 增加了系统的复杂性。

2.简单工厂模式(4)

​ 属于类创建型模式。简单工厂模式最大的有点在于对象的创建和对象的使用分离,可以降低代码的耦合度,使得两者修改起来都相对容易;其二,静态方法,调用方便;但是其最大的缺点在于工厂类不够灵活,增加新的产品需要修改工厂内部的判断逻辑,而且一旦产品较多时,工厂内部逻辑显得较为复杂,违背了开闭原则。

​ 适用情况:工厂类负责创建的对象比较少;调用者只需要传入几个参数,并不关心其创建细节。

3.抽象工厂模式(5)

​ 属于类创建型模式。一个产品类的实例如何被创建、组合和表达的细节,我们并不需要知道和关心时,那么就适用于所有的工厂类模式。

4.单例模式(4)

​ 单例模式(Singleton Pattern):单例模式确保某一个类只有一个实例。

​ 单例模式的要点有三个:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须向进程提供这个实例。单例模式是一个对象创建型模式。

​ 单例类,必须提供一个私有的构造函数,确保调用者无法通过new关键字实例化它。除此之外还需要一个公共的静态工厂getInstance方法来获得实例和一个自身的私有静态成员变量。

​ 作用;避免产生过多的对象消耗过多的资源,或者说有的对象有且只能有一个。

懒汉式单例最大的弊端在于:已经实例化后,多线程还在串行执行getInstance方法,浪费不必要的资源。所以应该将synchronized关键字移到判空后面,双层判空方法。

5.观察者模式
6.代理模式
7.适配器模式
8.建造者模式(builder模式)

​ builder模式特点;

  1. 需要生成的产品对象有复杂的内部结构,这些产品对象通常包含多个成员属性。
  2. 需要生产的产品对象的属性相互依赖,需要指定其生成顺序。
参考链接:http://design-patterns.readthedocs.io/zh_CN/latest/index.html
0 0