java设计模式

总体来说设计模式分为三大类:

创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

工厂模式

1、工厂方法模式

是我们最常用的实例化对象模式了,是用工厂方法代替new操作

public class Factory{

    public static ISample creator(int which){

        if (which==1)
            return new SampleA();
        else if (which==2)
            return new SampleB();
    }
}

 创建实例:

iSample sampleA=Factory.creator(1);

2、抽象工厂模式

这两个模式区别在于需要创建对象的复杂程度上。如果我们创建对象的方法变得复杂了,就用抽象工厂

就将上例中Factory变成抽象类,将共同部分封装在抽象类中,不同部分使用子类实现

public abstract class Factory{
    public abstract Sample creator();
    public abstract Sample2 creator(String name);
}
public class SimpleFactory extends Factory{
    public Sample creator(){
        .........
        return new SampleA
    }
    public Sample2 creator(String name){
        .........
        return new Sample2A
    }
}
 
public class BombFactory extends Factory{
    public Sample creator(){
        ......
        return new SampleB
    }
    public Sample2 creator(String name){
        ......
        return new Sample2B
    }
}

模板模式

定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中。

Java的抽象类本来就是模板模式

优点:

模板方法模式通过把不变的行为搬移到父类,去除了子类中的重复代码。
子类实现算法的某些细节,有助于算法的扩展。
原文地址:https://www.cnblogs.com/stellar/p/5267305.html