首页 > 代码库 > JAVA学习笔记-----设计模式之工厂模式
JAVA学习笔记-----设计模式之工厂模式
1.设计模式---------->工厂模式:
Sender.java
package me.ele.mytest; public interface Sender { public void send(); }
2.MailSend
package me.ele.mytest; public class MailSend implements Sender { @Override public void send() { System.out.println("this is mail send"); } }
3.SmsSend
package me.ele.mytest; public class SmsSend implements Sender { @Override public void send() { System.out.println("this is Sms Send"); } }
4.TestFactory
package me.ele.mytest; public class TestFactory { public Sender produce(String type) { if (type.equals("Mail")) { return new MailSend(); } else if (type.equals("Sms")) { return new SmsSend(); } else { System.out.println("请输入正确的类型"); return null; } } }
5.Main.java
package me.ele.mytest; public class Main { public static void main(String[] args) { System.out.println("开始测试工厂设计模式"); System.out.println("===================="); TestFactory t = new TestFactory(); Sender s1 = t.produce("Mail"); Sender s2 = t.produce("Sms"); s1.send(); s2.send(); System.out.println("===================="); } }
6. result
开始测试工厂设计模式 ==================== this is mail send this is Sms Send ====================
7.以上的模式使用起来需要匹配字符,较为不便.可以使用抽象工厂模式来使用
新增Provider接口
package me.ele.mytest; public interface Provider { public Sender produce(); }
新增实现Provider接口的SendMailFactory与SendSmsFactory类
package me.ele.mytest; public class SendMailFactory implements Provider { @Override public Sender produce(){ return new MailSend(); } }
package me.ele.mytest; public class SendSmsFactory implements Provider{ @Override public Sender produce(){ return new SmsSend(); } }
修改Main方法:
package me.ele.mytest; public class Main { public static void main(String[] args) { System.out.println("开始测试工厂设计模式"); System.out.println("===================="); Provider s1 = new SendMailFactory(); Provider s2 = new SendSmsFactory(); s1.produce().send(); s2.produce().send(); System.out.println("===================="); } }
返回结果
开始测试工厂设计模式 ==================== this is mail send this is Sms Send ====================
以上在实现工厂模式时,只需要新增接口就能在不改变源代码的情况下,轻松的拓展新的接口
工厂模式适用于有大量产品需要创建,但是又有共同接口时使用
JAVA学习笔记-----设计模式之工厂模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。