java设计模式第一篇-简单工厂模式
java设计模式第一篇-简单工厂模式
e代宗师 发表于4年前
java设计模式第一篇-简单工厂模式
  • 发表于 4年前
  • 阅读 37
  • 收藏 0
  • 点赞 0
  • 评论 0

工厂模式解决的问题:如何在java应用开发中实现“面向接口编程”。

接口的用途:通常使用接口来定义实现类的外观,即实现类的行为定义,用来约束实现类的行为。

接口的思想:封装隔离。

使用接口的好处:内部实现和外部调用实现了隔离,只要接口不变,无论内部实现如何改变,都不会导致外部调用的改变。“接口是系统可插拔性的保证”。

1.不用模式的解决方案

接口类:

   1:  public interface Api{
   2:      public void operation();
   3:  }

 

接口的实现类:

   1:  public class Impl implements Api{
   2:      public void operation(){
   3:          System.out.println("Impl");
   4:      }
   5:  }

 

 使用接口类:

   1:   public class Client{

 

   2:        public static void main(String[] args){

 

   3:            Api api = new Impl();

 

   4:           api.operation();

 

   5:       }

 

   6:    }

可见,Impl类仍然暴露给了客户端。

2.使用工厂模式的解决方案

接口类和接口的实现类不变,增加简单工厂类Factory

   1:  public class  Factory{
   2:      public static Api createApi(int condition){
   3:          if(1 == condition){
   4:               return new Impl();
   5:          }else{
   6:              return null;//或者其他ImplA();
   7:          }
   8:      }
   9:  }

 

使用工厂类后,客户端对接口的使用:

   1:  public class Client{
   2:      public static void main(String[] args){
   3:          Api api = Factory.createApi();
   4:          api.operator();
   5:      }
   6:  }

 

使用工厂类后,就实现了接口具体实现的封装,客户端就看不到接口内部的具体实现了,完全体现了接口的“封装隔离”。

3.如果工厂有不同的实现类,在工厂中选择实现方法时可以有两种方法,一种就是在上面的factory中使用if。。。else 语句,通过传入condition参数选择不同的实现类。

再一种方法就是使用perpority配置文件进行配置,这样在客户端就可以不用传入任何参数就能依据配置文件获得需要的接口。

   注:本笔记来源于《研磨设计模式》一书,如有侵权,请联系本人及时进行删除。

共有 人打赏支持
粉丝 2
博文 1
码字总数 517
×
e代宗师
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: