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类里面的代码。

 

你可能感兴趣的:(设计模式,html)