JAVA学习笔记-----设计模式之工厂模式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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学习笔记-----设计模式之工厂模式的主要内容,如果未能解决你的问题,请参考以下文章