設計模式整理記錄1

public abstract class AbastractFactory{
    public abstract IProduct getProduct(Class<T> c);

}

public FactoryA extends AbastractFactory{

    public IProduct getProduct(Class<T> c){

               IProduct product = (IProduct)ClassforName(c.getClass).newInstance();
               return product;
    }

}

Client.java
main(){

    AbastractFactory factory = new FactoryA();

    IProduct productA = factory.getProduct(ProductA.class);
    productA.getColor();
}


Client.java
main(){

    AbastractFactory factory1 = new Factory1();
    AbastractFactory factory2 = new Factory2();

    factory1.createProductA1();

    factory1.createProductB1();
    factory2.createProductA2();

    factory2.createProductB2();
}

Client.java

main:(){

    AbastractProduct product = new ProductA();

    product.onProcess();
   AbastractProduct productB = new ProductB();

   productB.onProcess();
   //onProcess:

   //this.start,this.run,this.stop

}

建造者模式

Client.java

main(){
    List.add("start"), List.add("run"), List.add("stop"),
   Builder b1 = new BuilderA();
   b1.setSeq(list);//a.setSeq()

   b1.getProduct();

   List.add("run"), List.add("start"), List.add("stop"),

  Builder b2 = new BuilderB();
   b2.setSeq(list);//b.setSeq()

   b2.getProduct();

}

代理模式

Client.java
main(){

    IPlayer ai = new Player("ai");
    IPlayer proxy = new Player("robot");

    proxy.setPlayer(ai);

    proxy.login();
    proxy.player();

}

原型模式:

Client.java

main(){

    Mail a = new Mail(new Template);
    while(I<1000000000){

         Mail b = a.clone();b.setDes();b.setRes();

         sendMail(b);
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章