单件模式(Singleton Pattern)保证一个类仅有一个实例,并提供一个访问它的全局访问点。它解决的是实体对象的个数问题,其他的都是解决new所带来的耦合关系问题。这里包括多线程单件模式,双重锁定单件模式。
类图:
工厂方法模式(Factory Pattern)定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类中。在工厂方法中,工厂类成为了抽象类,其实际的创建工作将由其具体子类来完成。工厂方法的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中去,强调的是“单个对象”的变化。
类图:
工厂模式
简单工厂
简单工厂模式的最大优点在于工厂类中包含了必要的判断,根据客户端的选择提交见动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。
抽象工厂模式(Abstract Factory)提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。抽象工厂是所有工厂模式中最为抽象和最具有一般性的一种形态。抽象工厂可以向客户提供一个接口,使得客户可以在不必指定产品的具体类型的情况下,创建多个产品族中的产品对象,强调的是“系列对象”的变化。
类图:
建造者模式(builder):将复杂对象的构建与它的表现分离,使得同样的构建过程能够创建不同的表示。把构造对象实例的逻辑移到了类的外部,在这个类的外部定义了这个类的构造逻辑。他把一个复杂对象的构造过程从对象的表示中分离出来。其直接效果是将一个复杂的对象简化为一个比较简单的目标对象。他强调的是产品的构造过程。
类图:
应用场景:一个站点需要提供两种视图一种是手机一种是PC。业务一致,而构建的视图不一致。此时需要建造者将构建与他的表现分离,构建过程创建不同的表示。这样说或许有些模糊,记住一个关键词“对象部分”变化
原型模式(Prototype):用原型实例制定创建对象的种类,并且通过拷贝这些原型创建新的对象。和工厂模式一样,同样对客户隐藏了对象创建工作,但是,与通过对一个类进行实例化来构造新对象不同的是,原型模式是通过拷贝一个现有对象生成新对象的。通过克隆来解决“易变对象”的创建问题
类图: