[Java] Java设计模式菜鸟系列(五)抽象工厂模式建模与实现 →→→→→进入此内容的聊天室

来自 , 2021-01-09, 写在 Java, 查看 122 次.
URL http://www.code666.cn/view/09c6c378
  1. /**
  2.  * 示例:抽象工厂--顾名思义,就是把工厂抽象出来,不同的工厂生产不同的产品
  3.  *
  4.  * 优点:一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码
  5.  */
  6. interface Sender {
  7.         public void send();
  8. }
  9.  
  10. class EmailSender implements Sender {
  11.  
  12.         @Override
  13.         public void send() {
  14.                 System.out.println("this is a email...");
  15.         }
  16. }
  17.  
  18. class SmsSender implements Sender {
  19.  
  20.         @Override
  21.         public void send() {
  22.                 System.out.println("this is a sms...");
  23.         }
  24.  
  25. }
  26.  
  27. /**
  28.  * 角色:抽象工厂
  29.  */
  30. interface AbstractFactory {
  31.         public Sender produce();
  32. }
  33.  
  34. /**
  35.  * 邮件工厂
  36.  */
  37. class EmailSendFactory implements AbstractFactory {
  38.  
  39.         @Override
  40.         public Sender produce() {
  41.                 return new EmailSender();
  42.         }
  43. }
  44.  
  45. /**
  46.  * 短信工厂
  47.  */
  48. class SmsSendFactory implements AbstractFactory {
  49.  
  50.         @Override
  51.         public Sender produce() {
  52.                 return new SmsSender();
  53.         }
  54. }
  55.  
  56. /**
  57.  * 客户端测试类
  58.  *
  59.  * @author Leo
  60.  */
  61. public class Test {
  62.         public static void main(String[] args) {
  63.                 /**
  64.                  * 创建工厂
  65.                  */
  66.                 AbstractFactory factory = new SmsSendFactory();
  67.                 /**
  68.                  * 生产产品
  69.                  */
  70.                 Sender sender = factory.produce();
  71.                 /**
  72.                  * 执行业务逻辑
  73.                  */
  74.                 sender.send();
  75.         }
  76.  
  77. }//源代码片段来自云代码http://yuncode.net
  78.                        

回复 "Java设计模式菜鸟系列(五)抽象工厂模式建模与实现"

这儿你可以回复上面这条便签

captcha