zoukankan      html  css  js  c++  java
  • 设计模式--简单工厂模式--简记

    简单工厂一般分为:

      1.普通简单工厂

      2.多方法简单工厂

      3.静态方法简单工厂

    一、普通简单工厂

      概念:就是建立一个工厂类,对实现了统一接口的一些类进行实例的创建。

     1 //公共接口
     2 public interface Sender {
     3     public void send();
     4 }
     5 
     6 //实现类1
     7 public class MailSender implements Sender {
     8 
     9     @override
    10     public void send() {
    11         System.out.println("Send Email");
    12     }
    13     
    14 }
    15 
    16 //实现类2
    17 public class SmsSender implements Sender {
    18 
    19     @override
    20     public void send() {
    21         System.out.println("Send Sms");
    22     }
    23     
    24 }
    25 
    26 //建立工厂类
    27 public class FactorySend {
    28     public Sender produce(String type){
    29         if("mail".equals(type){
    30             return new MainSender();
    31         }
    32         if("sms".equals(type){
    33             return new SmsSender();
    34         } else {
    35             return null;
    36         }
    37     }
    38     
    39 }         

    二、多个方法简单工厂

      概念:提供多个工厂方法,分别创建对象。

     1  //建立工厂类
     2 public class FactorySend {
     3 
     4      public Sender produceMail(){
     5 
     6             return new MainSender();
     7      }
     8 
     9     public Sender produceSms(){
    10 
    11             return new SmsSender();
    12      }
    13      
    14  }

    三、多个静态方法简单工厂

      概念:提供多个静态工厂方法,分别创建对象。

     1  //建立工厂类
     2 public class FactorySend {
     3 
     4      public static Sender produceMail(){
     5 
     6             return new MainSender();
     7      }
     8 
     9      public static Sender produceSms(){
    10 
    11             return new SmsSender();
    12      }
    13      
    14  }

    工厂模式应用:

      大量产品需要创建,并且具有共同的接口。

      多数情况下使用静态工厂方法模式较好一点。  

     存在的问题:类的创建依赖工厂类,想要拓展的话,必须修改工厂类。

  • 相关阅读:
    大物—⑦热力学基础1
    组原——③系统总线
    组原——①计算机系统概论
    递归
    字符串
    Linux下安装glibc-2.14,解决“`GLIBC_2.14' not found”问题
    libc.so.6被删除修复ln: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
    正则表达式高级用法(分组与捕获)
    查看Android应用包名、Activity的几个方法
    logcat随笔
  • 原文地址:https://www.cnblogs.com/fqfanqi/p/8511523.html
Copyright © 2011-2022 走看看