JDK设计模式(七)组合模式

1、定义 将对象组合成树形结构以表示“部分整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 2、解决的问题 组合模式解耦了客户程序与复杂元素内部结构,从而使客户程序可以像处理简单元素一样来处理复杂元素。 3、模式中的角色 1、抽象构件(component):是组合中对象的接口,适当情况下,实现所有类共有方法的默认行为,声明一个接口,用于管理和访问component子部件 2 […]

JDK设计模式(六)桥接模式

1、定义 将抽象部分与实现部分分离,使它们都可以独立的变化 2、解决的问题 某个类具有两个或两个以上的维度变化,如果只是用继承将无法实现这种需要,或者使得设计变得相当臃肿,把变化部分抽象出来,使变化部分与主类分离开来,从而将多个维度的变化彻底分离,提供一个管理类来组合不同维度上的变化,通过这种组合来满足业务的需要,从达到抽象化、实现化和脱耦。 3、模式中的角色 1、 抽象化(Abstra […]

JDK设计模式(五)适配器模式

  1、定义 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 2、解决的问题 即Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。 3、模式中的角色 目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。 需要适配的类(Adaptee):需要适配的类或适配 […]

JDK设计模式(四)原型模式

用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。 在原型模式中,所发动创建的对象通过请求原型对象来拷贝原型对象自己来实现创建过程,当然所发动创建的对象需要知道原型对象的类型。这里也就是说所发动创建的对象只需要知道原型对象的类型就可以获得更多的原型实例对象,至于这些原型对象时如何创建的根本不需要关心,其类图如下所示。     原型模式主要包含如下三个角色: Pro […]

JDK设计模式(三)建造者模式

将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 建造模式是将复杂的内部创建封装在内部,对于外部调用的人来说,只需要传入建造者和建造工具,对于内部是如何建造成成品的,调用者无需关心,其类图如下。 Product : 产品类,由多个部件构成。 class Product { List<String> parts = new ArrayList<String&g […]

JDK设计模式(二)工厂模式

工厂模式是我们最常用的实例化对象模式,使用工厂方法代替new操作的一种模式,使用工厂模式,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量。 1、简单工厂模式 简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。 简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最 […]

JDK设计模式(一)单例模式

单例模式确保一个类只有一个实例,并提供一个全局访问点。          其类图如下所示。   本文主要从饿汉式,懒汉式,懒汉式改进,来讲解单例模式。 1、饿汉式单例 饿汉式单例类是在Java 语言里实现得最为简便的单例类。在类被加载时,就会将自己实例化。 public class Singleton { private static S […]

JDK中的设计模式

chengbao

本文主要是归纳了JDK中所包含的设计模式,包括作用和其设计类图。 一、设计模式的作用 反复出现问题的解决方案 增强软件的灵活性 适应软件不断变化 二、设计模式的七大原则 开闭原则OCP(Open Close Principle),一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。 里氏代换原则LSP(Liskov Substitution Principle),子类可以扩展父类的功能,但不能 […]