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

抽象工厂方法

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

现有三种产品: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(); 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值