天天看点

java 工厂模式分析理解

1、普通工厂模式:创建一个工厂类,对实现同一接口的不同类,根据不同的类别实例化不同的对象。

接口类:

public interface Sender {  

    public void Send();  

}  

public Class printSend1 implements Sender{

    public void Send(){

          system.out.println("这是工厂第一个物品A");

    }   

}

public Class printSend2 implements Sender{

    public void Send(){

            system.out.println("这是工厂第一个物品B");

     }

}

工厂类:

public Class Factory{

     public void factoryTest(String factoryType){

             swicth(factoryType){

                    case "1": return new printSend1();breack;

                    case "2": return new printSend2();breack;

                     default:println("输入类型错误,请重新输入");

              }

     }

}

测试类:

public static void main(String[] args){

              Factory factory=new Factory();

              Sender sender=factory.factoryTest("factoryType");

              sender.send();

 }

总结:通过factory工厂类获取Sender类子类的实例化。缺点如果再加入一种想要生产的物品,还是需要修改工厂类。

工厂类改进类:

public Class Factory1 implements FactoryClass{

     public void factoryTest(String factoryType){

             return new printSend1();

     }

}

public Class Factory2 implements FactoryClass{

     public void factoryTest(String factoryType){

             return new printSend2();

     }

}

另加一个借口类:

public interface FactoryClass{

       public Sender factoryTest();

}

主方法:

public class Test{

       public static void main(String[] args){

                FactoryClass factoryClass=new Factory2();

                Sender sender=factoryClass.factoryTest();

                sender.send();

       }

}

总结:通过接口的实现,为每一个工厂添加共同的方法。但每个工厂中的实例化对象不同。这样的工厂类,就不存在添加新的物品改写工厂类,只需添加新的工厂类就好了。

继续阅读