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"),
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);
}