您的位置:首页 > 其它

【设计模式】抽象工厂

2015-03-08 12:15 106 查看
工厂方法有缺点:每次新增产品类,都需要去修改工厂类的代码。。。

我们改进一下:

在原来代码基础上,我们做如下改进

对每个产品都提供一个工厂类:

public class EmailFactory implements Provider  {
public static Email productEmail() {
return new Email();
}
}


public class SmsFactory implements Provider {

@Override
public IAction produce() {
return new Sms();
}
}


他们都需要去实现统一接口:

public interface Provider {
public IAction produce();
}


也就是说使用接口把两个工厂类做了统一:那么再来新产品的时候,我们新增工厂类和对应的产品实现类就可以了。不需要修改工厂。

public class Test {

public static void main(String[] args) {
Provider smsFactory = new SmsFactory();
smsFactory.produce().doSomeThings();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: