`

工厂模式和抽象工厂模式

    博客分类:
  • J2EE
 
阅读更多

工厂模式:根据传进的Class,动态产生目标类的实例;

  class HumanFactory{

     Human newInstance(Class c){

         return (Human)Class.forName(c.getName()).newInstance();

     }

  }

抽象工厂模式:在工厂模式的基础上,进行更细致的产品线划分,进而动态产生目标类的实例;

  class abstract HumanFactoryAbstract{

     Human newInstance1(Class c){

         return (Human)Class.forName(c.getName()).newInstance();

     }

  }

  class HumanMaleFactory extends HumanFactoryAbstract{

     Human newInstance(){

          return super().newInstance(Class maleClass);

     }

  }  

 

  class HumanFemaleFactory extends HumanFactoryAbstract{

     Human newInstance(){

          return super().newInstance(Class FemaleClass);

     }

  }  

可以看出:工厂模式的优点是高内聚、低耦合,上面的例子看出,每个工厂产生的实例在调用时都是互不影响的,提供给外部调用时,只需要提供*Factory.newInstance()方法即可。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics