您的位置:首页 > 其它

设计模式之抽象工厂模式

2013-12-06 11:16 155 查看
package com.csair.design.pattern;

/**
* 一个抽象工厂可以生产人(成人,小孩),和对应的玩具
* 抽象工厂生产一系列产品,产品间有对应关系:比如说,什么样的人,玩什么样的玩具
* @author ppt
*/
public class AbstractFactory {

public static void main(String[] args) {
Factory factory = new AdultFactory();
play(factory);
Factory factory1 = new ChildFactory();
play(factory1);
}
public static void play(Factory factory) {
System.out.println(factory.getPerson().getName()+" plays " + factory.getToy().getName());
}

}
interface Factory {
Person getPerson();
Toy getToy();
}
class AdultFactory implements Factory{

@Override
public Person getPerson() {
return new Adult();
}

@Override
public Toy getToy() {
return new AdultToy();
}

}
class ChildFactory implements Factory{

@Override
public Person getPerson() {
return new Child();
}

@Override
public Toy getToy() {
return new ChildToy();
}

}
interface Person {
String getName();
}
class Adult implements Person{

@Override
public String getName() {
return "adult(tom)";
}

}
class Child implements Person{

@Override
public String getName() {
return "child(jack)";
}

}
interface Toy {
String getName();
}
class AdultToy implements Toy {

@Override
public String getName() {
return "adult(basketball)";
}

}
class ChildToy implements Toy {

@Override
public String getName() {
return "child(pingpong)";
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: