简单工厂VS工厂方法

简单工厂

  1.自定义多个算法

  2.算法的实现在工厂类中实现,工厂类中包含一些算法逻辑,根据客户端选择条件动态管理相关类

  3.客户端不需要指明调用的算法类

  4.对新的产品or算法可扩展,但同时需要修改工厂实现类,实现对修改开发,

工厂方法模式

  1.对具体产品有自己的产品工厂

  2.对实现哪个产品的判断移动到客户端来判断,需要由客户端选择实现的工厂,生成产品

  3.如果同时需要增加一个产品,需要同时增加产品类和产品工程类,修改的只是客户端

 

 

 abstract class  Product
	  {
		  public  abstract void CreateProduct();
		 
	  }
         //product a
	  class Product_A extends Product
	  {
		   public  void CreateProduct()
		  {
			   System.out.println("Create Product_A");
		  }
	  }
          // product b
	    class Product_B extends Product
	  {
		   public  void CreateProduct()
		  {
			   System.out.println("Create Product_B");
		  }
	  }

	  // Factory

	  class Product_Factory
	  {
		  public  Product CreateProduct(int ind)
		  {
			  Product pro = null;

			  if(ind == 1)
                  pro = new Product_A();

			  if(ind == 2)
                  pro = new Product_B();

			  return pro;

		  }
	  }
      

	  // 工厂
	 interface  CreateFactory
	 {
		 public  Product CreateProductFactory();
	 }



	 class Factory_A implements CreateFactory
	 {
		  public  Product CreateProductFactory()
		 {
			  return new Product_A();
		 }
	 }

	  class Factory_B implements CreateFactory
	 {
		  public  Product CreateProductFactory()
		 {
			  return new Product_B();
		 }
	 }

	 class Product_Factory_Test
	 {		
		 public void Product_Factory_Client()
		 {
			 // simple factory
			  Product_Factory fac = new Product_Factory();
			  fac.CreateProduct(1).CreateProduct();
			   fac.CreateProduct(2).CreateProduct();
              

			  // factory method
			   CreateFactory Cfa = new Factory_A();
			   CreateFactory Cfb = new Factory_B();
               Cfa.CreateProductFactory().CreateProduct();
			   Cfb.CreateProductFactory().CreateProduct();

		}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值