package com.csair.design.pattern;
/**
* 工厂方法,有抽象基类,每个子类生产一个具体对象,
* 与抽象工厂的关系是,抽象工厂生产多个产品(产品有某种内在联系),工厂方法只生产一个对象
* @author ppt
*/
public class FactoryMethod {
public static void main(String[] args) {
ToyFactory factoty = new ChineseToyFactory();
product(factoty);
ToyFactory factoty1 = new EnglishToyFactory();
product(factoty1);
}
public static void product(ToyFactory factoty) {
System.out.println(factoty.getToy().getName());
}
}
interface ToyFactory {
Toys getToy();
}
interface Toys {
String getName();
}
class ChineseToyFactory implements ToyFactory {
@Override
public Toys getToy() {
return new ChineseToy();
}
}
class EnglishToyFactory implements ToyFactory {
@Override
public Toys getToy() {
return new EnglishToy();
}
}
class ChineseToy implements Toys {
@Override
public String getName() {
return "chinese toy";
}
}
class EnglishToy implements Toys {
@Override
public String getName() {
return "enghlish toy";
}
}
设计模式之工厂方法模式
最新推荐文章于 2023-07-16 13:58:47 发布