您的位置:首页 > 编程语言 > Java开发

软件设计模型之抽象工厂模式(Java实现)

2014-06-11 19:06 387 查看
抽象工厂方法

抽象工厂方法适合用于多种类多系列产品

现有三种产品:Phone,Watch,Pad

分别由三家公司:Apple,Sunsng,小米

UML设计图



核心实现代码

(1)抽象工厂类

public abstract class AbstractFactory {

public abstract AbstractPhone getPhone();

public abstract AbstractWatch getWatch();

public abstract AbstractPad getPad();

public static AbstractFactory getFactory(String brand)

{

AbstractFactory f=null;

if(brand.equals(AbstractFactory.IFACTORY)){f=new Factory_Apple();}

else if(brand.equals(AbstractFactory.MIFACTORY)){f=new Factory_Xiaomi();}

else if(brand.equals(AbstractFactory.SUNFACTORY)){f=new Factory_Samsung();}

return f;

}

(2)具体工厂类(以苹果为例)

public class Factory_Apple extends AbstractFactory {

//实现抽象工厂的抽象方法产生产品对象

@Override

public AbstractPhone getPhone() {

return new IPhone();

}

@Override

public AbstractWatch getWatch() {

return new IWatch();

}

@Override

public AbstractPad getPad() {

return new IPad();

}

}

(3)抽象产品类(以Phone为例)

public interface AbstractPhone {

public String getPhoneInfo();

}

(4)具体产品类(以IPhone为例)

public class IPhone implements AbstractPhone {

private String descrision="Iphone :This time, everything is possible";

@Override

public String getPhoneInfo() {

return descrision;

}}

(5)Client类

AbstractFactory bf=AbstractFactory.getFactory(brand);//指定品牌

if(product.equals("手机")){

AbstractPhone ph=bf.getPhone();info=ph.getPhoneInfo(); //指定种类}

else if(product.equals("平板")){AbstractPad pd=bf.getPad(); info=pd.getPadInfo();

else if(product.equals("手表")){AbstractWatch wh=bf.getWatch(); info=wh.getWatchInfo();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐