java设计模式——工厂方法模式
来源:互联网 发布:全景图拼合软件 编辑:程序博客网 时间:2024/06/06 18:25
工厂方法模式就是当大量的对象需要创建时,而且它们具有相同的行为特征,也就是具有相同的父接口时,可以通过工厂方法模式来设计。
具体的例子
package com.kunde.factoryMethod;/** * 所有工厂的父接口 * Created by lihao on 2017/12/8. */public interface GlobalFactory { Sender produce();}
package com.kunde.factoryMethod;/** * 相同行为特征的父接口 * Created by lihao on 2017/12/8. */public interface Sender { void send();}
package com.kunde.factoryMethod;/** * Created by lihao on 2017/12/8. */public class SmsFactory implements GlobalFactory { @Override public Sender produce() { return new SmsSender(); }}
package com.kunde.factoryMethod;/** * Created by lihao on 2017/12/8. */public class MailFactory implements GlobalFactory { @Override public Sender produce() { return new MailSender(); }}
package com.kunde.factoryMethod;/** * Created by lihao on 2017/12/8. */public class SmsSender implements Sender{ @Override public void send() { System.out.println("发送sms消息。"); }}
package com.kunde.factoryMethod;import java.io.Serializable;import java.util.Comparator;/** * * Created by lihao on 2017/12/8. */public class MailSender implements Sender { @Override public void send() { System.out.println("发送mail消息。"); }}
输出结果:package com.kunde.factoryMethod;import java.io.Serializable;import java.util.Comparator;/** * 测试类 * Created by lihao on 2017/12/8. */public class TestFactoryMethod { public static void main(String[] args) { GlobalFactory factory = new SmsFactory(); Sender sender = factory.produce(); sender.send(); }}
发送sms消息。
总结:如上代码可以看出,工厂方法模式有如下特点:
一个抽象产品类,可以派生出多个具体的产品类。
一个抽象工厂类,可以派生出多个具体工厂类。
每一个具体工厂类只能创建一个具体的产品类实例。
阅读全文
0 0
- Java设计模式—工厂方法模式&抽象工厂模式
- Java设计模式—工厂方法模式&抽象工厂模式
- <Java设计模式>—工厂方法模式
- JAVA设计模式——工厂方法
- Java设计模式—工厂方法
- Java设计模式——工厂模式(简单工厂、工厂方法 、抽象工厂 )
- Java设计模式(一) 设计模式初探——简单工厂和工厂方法模式
- Head First Java 设计模式——工厂方法模式
- java设计模式——工厂方法模式
- JAVA设计模式学习5——工厂方法模式
- JAVA设计模式(二)——工厂方法模式
- Java设计模式 —— 工厂方法模式 (Factory Method)
- java设计模式——工厂方法模式
- Java设计模式之——工厂方法模式
- Java 设计模式情景分析——工厂方法模式
- java设计模式——工厂方法模式
- 设计模式之—工厂方法模式(FactoryMethod)-Java实现
- JAVA设计模式 —工厂方法模式(Factory Method)
- 贝塞尔曲线 基本使用
- 作业
- 将json格式的参数改为访问链接参数的解决方法
- 检测直线(利用cv::ximgproc::FastLineDetector)
- 网络编程1
- java设计模式——工厂方法模式
- JQuery实现input上传图片显示缩略图
- 网络编程2
- fd_set用法
- J
- java邮箱发送失败的一个从错误
- 常用三方库列表
- CSS background-image属性
- SpringBoot开发微信公众号(四)