设计模式学习0

简单工厂模式(simpleFactory),又叫做静态工厂方法模式,它定义一个具体的工厂类来负责创建一些类的实例,而这些被创建的类都应该有一个共同的父类,这样可以实现面向对象而不是面向具体编程。简单工厂类主要由3部分组成:工厂类、抽象类和实现抽象类的具体类。


   简单工厂模式的原理结构图:

   


 代码示例:


抽象类:

//Product.java

//抽象接口

package cn.desginPatten


public inteeface Product{

       public void operation1();

}


具体产品类:

//Product1.java

//实现Product接口


package cn.desginPatten


public class Product1 implements Product{

     public void operation1(){

          //Product1的具体实现

    }

}


//Product2.java

//实现Product接口


package cn.desginPatten


public class Product2 implements Product{

     public void operation1(){

          //Product2的具体实现

    }

}


工厂类:


package cn.desginPatten


public class simpleFactory{

    public static Product createProduct(String ProductName){

        if("1".equals(ProductName))

            return new Product1();

           else if("2".equals(ProductName))

           retrun new Product2();

     return null;

}


客户端代码:


 public class simpleFactoryTest{
    public static void main(String [] args){

       Product product = simpleFactory.createProduct("1");

       product.operation1();

       Product product = simpleFactory.createProduct("2"); 

       product.operation1();

}


   简单工厂模式的优缺点:简单工厂模式是一种创建型模式,主要应用于创建对象。

     优点:客户端不再负责对象的创建,而是将创建对象丢到专门创建对象的工厂类,客户端只负责对对象的调用,这样各个类的职责便比较明确了。

    缺点:简单工厂采用静态的方法来创建对象,这使得该方法无法被继承,假设在上例中需要再增加1个产品,那么只能修改工厂类方法,如果是1000个呢?这将导致后期工厂类的代码变的很庞大、臃肿。不利于后期的维护。

   简单工厂模式适用情况:只需要创建少量的具体对象。(这个少量具体是多少?有待验证)

  简单工厂类的改进:------

你可能感兴趣的:(设计模式,简单工厂模式,simplefactory)