min10

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

  为了实现更好的灵活性  
  应改面向接口编程。因此,应该面向接口提供工场。  
   
  比如,Cat,   Dog,   Mouse,都是4条腿会跑的动物。  
  因此,我们建立一个接口叫做FourLegs  
  interface   FourLegs   {  
    void   run();  
  }  
   
  我们可能需要一个实验使用一个会跑得动物  
  比如,我们要一个发电机,但是不管什么  
  只要会跑得动物都可以来发电  
   
  class   ElectricProducer   {  
      void   produceBy(FourLegs   fourLegs){  
          ...dosomething..  
        fourLegs.run();  
      }  
  }  
   
  我们需要一个工场来管理动物的创建,因为有可能增加很多动物。  
  OCP原则,就是说,对类的扩展要open类,对类的修改要close  
   
  class   FourLegFactory{  
      FourLegFactory   factory()   {  
          return   ...  
      }  
  }  
   
  这里面factory的实现可以是通过配置文件,也可以是通过参数等等  
  反正是产生了一个Cat,Dog或者Mouse的实例。这我们不关注是什么  
   
  Client代码{  
  FourLeg   fourLeg   =   FourLegFactory.factroy();  
  ElectricProducer.produceBy(fourLeg)  
  }  
   
  这样我们的发电机正常运作了  
  而且通过修改某种系统设置,可以更换任何一种动物来帮忙发电  
   
  试想,如果我们用FourLeg   fourLeg   =   new   Mouse();  
  那么一旦许要换成Cat,还需要修改Client的代码。  
   
  这就是simple   factory

posted on 2008-10-17 16:49  min10  阅读(458)  评论(0编辑  收藏  举报