java设计模式

来源:互联网 发布:店管家打印软件 编辑:程序博客网 时间:2024/05/21 10:57

其实无论应用哪种设计模式,本质上都是提出不变的东西,将可变的东西作为接口,以达到最大程度上的复用和扩展

1、工厂方法模式(Factory Method Pattern):

Define an interface for creating an object,but let the subclasses decide which class to instantiate.Factory Method lets a class defer instantiation to subclasses

定义一个创建对象的接口,但是让子类决定该实例化哪个类。工厂方法让一个类推迟实例化至它的子类中。

/** * 抽象产品类 */public abstract class Product {//产品类的公共方法    public void method1() {//业务逻辑处理    }//抽象方法    public abstract void method2();}

/** * 具体产品类1. */public class ConcreteProduct1 extends Product {    public void method2() {//业务逻辑处理    }}

/** * 具体产品类2. */public class ConcreteProduct2 extends Product {    public void method2() {//业务逻辑处理    }}

/** * 抽象工厂类. */public abstract class Creator {    /**     *     * @param c     * @return     * 创建一个产品对象,其输入参数类型可以自行设置,通常为String、Enum、Class等,当然也可以为空     */    public abstract Product createProduct(Class<? extends Product> c);}

/** * 具体工厂类. */public class ConcreteCreator extends Creator {    public Product createProduct(Class<? extends Product> c) {        Product product=null;        try {            product = (Product)Class.forName(c.getName()).newInstance();        } catch (Exception e) {//异常处理        }        return product;    }}


Creator creator = new ConcreteCreator();Product product = creator.createProduct(ConcreteProduct1.class);/** * 继续业务处理 */


2、抽象工厂模式(Abstract Factory Pattern)

Provide an interface for creating families of related or dependent objects without specifying their concrete classes。

为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。


0 0