Java Design Pattern

1.Factory设计模式

工厂模式(Factory Pattern)是 Java 中最经常使用的设计模式之一。这种类型的设计模式属于建立型模式,它提供了一种建立对象的最佳方式。安全

使用状况:定义一个建立对象的接口,让其子类本身决定实例化哪个工厂类,工厂模式使其建立过程延迟到子类进行。
优势:一个调用者想建立一个对象,只要知道其名称就能够了。 扩展性高,若是想增长一个产品,只要扩展一个工厂类就能够。 屏蔽产品的具体实现,调用者只关心产品的接口。
缺点:每次增长一个产品时,都须要增长一个具体类和对象实现工厂,使得系统中类的个数成倍增长,在必定程度上增长了系统的复杂度,同时也增长了系统具体类的依赖。
2.Singleton设计

单例模式是指,采用某种手段或者方法,保证整个软件系统中只能存在一个对象的实例,而且该实例只提供建立该对象的方法。代理

  • 使用状况:当您想控制实例数目,节省系统资源的时候,和一个全局使用的类频繁地建立与销毁的时候
  • 优势:节省系统资源的开销,避免内存的重复使用
  • 缺点:没有接口,不能继承

3. Prototype对象

在模板模式中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类能够按须要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。继承

  • 使用状况:一些方法通用,却在每个子类都从新写了这一方法。
  • 优势: 封装不变部分,扩展可变部分。 提取公共代码,便于维护。 行为由父类控制,子类实现。
  • 缺点:每个不一样的实现都须要一个子类来实现,致使类的个数增长,使得系统更加庞大。

4.Proxy接口

为其余对象提供一种代理以控制对这个对象的访问。内存

  • 使用状况:想在访问一个类时作一些控制。如安全代理,远程加载,延迟加载
  • 优势:职责清晰、高扩展性、智能化。
  • 缺点:因为在客户端和真实主题之间增长了代理对象,所以有些类型的代理模式可能会形成请求的处理速度变慢。并且实现代理模式须要额外的工做,有些代理模式的实现很是复杂。
相关文章
相关标签/搜索