java设计模式之抽象工厂设计模式
来源:互联网 发布:linux cp文件夹 编辑:程序博客网 时间:2024/06/06 00:55
抽象工厂模式:
这个模式的好处就是,如果你现在想增加一个功能:发及时信息,则只需做一个实现类,实现Sender接口,
同时做一个工厂类,实现Provider接口,就OK了,无需去改动现成的代码。这样做,拓展性较好!
就是采用多态的思想将工厂方法模式进行了改造
设计步骤:
第一步:创建一个接口Sender,在接口中提供实现类中共有的方法send
第二步:创建第一个实现类SmsSender,实现接口Sender
第三步:创建另一个实现类MailSender,实现接口Sender
第四步:创建一个工厂接口Provider,在接口中提供实现工厂共有的方法produce
第五步:创建工厂接口的第一个实现类SmsSenderFactory,实现Provider接口,用于创建smsSender的类对象
第六步:创建工厂接口的第一个实现类MailSenderFactory,实现Provider接口,用于创建MailSender的类对象
具体编码实现:
创建一个接口Sender,在接口中提供实现类中共有的方法send
/**
* 创建一个接口Sender,在接口中提供实现类中共有的方法send
*
* @author zdliu
*
*/
public interface Sender {
/**
* 实现类中共有的方法send
*/
public void send();
}
创建第一个实现类SmsSender,实现接口Sender
/**
* 创建第一个实现类SmsSender,实现接口Sender
*
* @author zdliu
*
*/
public class SmsSender implements Sender {
@Override
public void send() {
System.out.println("sms....");
}
}
创建另一个实现类MailSender,实现接口Sender
/**
* 创建另一个实现类MailSender,实现接口Sender
*
* @author zdliu
*
*/
public class MailSender implements Sender {
@Override
public void send() {
System.out.println("mail...");
}
}
创建一个工厂接口Provider,在接口中提供实现工厂共有的方法produce
/**
* 创建一个工厂接口Provider,在接口中提供实现工厂共有的方法produce
*
* @author zdliu
*
*/
public interface Provider {
/**
* 工厂共有的方法produce
*/
public Sender produce();
}
创建工厂接口的第一个实现类SmsSenderFactory,实现Provider接口,用于创建smsSender的类对象
/**
* 创建工厂接口的第一个实现类SmsSenderFactory,实现Provider接口,用于创建smsSender的类对象
*
* @author zdliu
*
*/
public class SmsSenderFactory implements Provider {
@Override
public Sender produce() {
return new SmsSender();
}
}
创建工厂接口的第一个实现类MailSenderFactory,实现Provider接口,用于创建MailSender的类对象
/**
* 创建工厂接口的第一个实现类MailSenderFactory,实现Provider接口,用于创建MailSender的类对象
*
* @author zdliu
*
*/
public class MailSenderFactory implements Provider {
@Override
public Sender produce() {
return new MailSender();
}
}
测试类如下:
public class Test {
public static void main(String[] args) {
// 测试SmsSenderFactory
new SmsSenderFactory().produce().send();
// 测试MailSenderFactory
new MailSenderFactory().produce().send();
}
}
控制台输出结果为:
sms....
mail...
关注微信公众号 java刘振东或者搜索java-lzd获取更多内容
- java设计模式之抽象工厂模式
- JAVA设计模式之抽象工厂模式
- Java设计模式之抽象工厂模式
- java设计模式之抽象工厂模式
- 【Java设计模式】之抽象工厂模式
- java设计模式 之 抽象工厂模式
- Java--设计模式之抽象工厂模式
- java设计模式之抽象工厂模式
- 设计模式之JAVA----抽象工厂模式
- java设计模式之抽象工厂模式
- java设计模式之抽象工厂模式
- JAVA设计模式之抽象工厂模式
- Java设计模式之抽象工厂模式
- 《Java设计模式》之抽象工厂模式
- Java设计模式之抽象工厂模式
- java设计模式之抽象工厂模式
- JAVA设计模式之抽象工厂模式
- Java设计模式之抽象工厂模式
- 用Redis bitmap统计活跃用户、留存
- PCA的Python实现
- 【Android】常用 Git 命令清单
- 面试算法题:求n以内的完数
- SourceTree以及GitHub的简单使用
- java设计模式之抽象工厂设计模式
- Selenium WebDriver 2.0 升级到3.0 需要注意的事项 (2)
- 上下左右控件的联动/股票列表联动
- C#中 存在主界面中的菜单项,在其他类中或者界面中,找不到的问题
- 机器学习--决策树算法
- Linux - Linux下操作Tomcat的命令
- 谈谈JAVA关键字—final
- 通过Adb命令抓取手机Log
- Java基础加强之集合篇(模块记忆、精要分析)