factory工厂模式

      factory工厂设计模式,目的在于方便系统扩展。
      这是设计模式里面最容易理解的模式之一。工厂就是可以生产东西的地方,然而一个工厂也是限定生产成品的,例如生产鞋子和袜子的工厂,你只能定鞋子和袜子的货。for example,在我的一个项目里面,有这样的功能,就是多格式文件处理,并获取一定信息,由于各种格式的文件的格式不同,所以读取方式不同,就要对应的类进行读取。我是这样处理的,根据传进来的文件名,判断其文件的后缀,然后在工厂类中获取一个对应的读取类的实例。
我的代码大概架构如下: 

public interface Document { 
    public String readDocument(String path); 
} 
public class HTMLDocument implements Document{ 
   public HTMLDocument() { 
   } 
   pbblic String readDocument(String path){/*......*/} 
} 
public class Factory{ 
   public static Document document(String type){ 
       if(type=="html") 
          return new HTMLDocument(); 
   } 
} 
public class ReadDoucment{ 
   public void readDoucment(String path){ 
       String type; 
      /*读取后缀......*/ 
     Document doc = Factory.document(type); 
     String str = doc.readDocument(path); 
} 
} 
如果不这样做的话,代码如下: 
public class ReadDocument{ 
   public void readDoucment(String path){ 
      String type; 
       /*读取后缀......*/ 
      if("html".equlas(type)){/*.....*/} 
   } 
} 

      也许有人认为,第二种方法的代码不是少很多吗,比较省事,但是你有没想过,但随着你的系统的扩展,ReadDocument类的readDocument()函数会变得相当的臃肿,一大堆的代码都堆在一起,难以调试维护和扩展。当你要扩展系统读取pdf格式文件的话,只要创建PdfDocument类,并implements接口Document就行了,不需要再管ReadDocument类里面的代码。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值