zoukankan      html  css  js  c++  java
  • 设计模式之工厂方法模式

    设计模式之工厂方法模式

        在我们了解了简单工厂模式之后我们考虑到专业性,在日常生活中有很多鞋厂,但有的鞋厂是很专业的,

        eg:安踏,阿迪达斯,等知名品牌做专业工厂,把工厂给具体化了。 

    1.抽象工厂(Creator)角色      :工厂方法模式的核心,任何工厂类都必须实现这个接口。     (CarFactory)

    2.具体工厂( Concrete Creator)角色     :具体工厂类是抽象工厂的一个实现,负责实例化产品对象。  (DaZhongFactory,XianDaiFactory)

    3.抽象(Product)角色       :工厂方法模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。(Car)

    4.具体产品(Concrete Product)角色      :工厂方法模式所创建的具体实例对象(DaZhongCar,XianDaiCar)

    在简单工厂模式的基础上把工厂模式具体化,让他们抽象出来一个接口。

        修改简单工厂模式的工厂类  修改为汽车工厂接口

      CarFactory汽车工厂类

    public interface CarFactory{
        public abstract  Car getCar();
    }
    

      大众车的工厂类

    public class  DaZhongFactory  implements CarFactory{
         @Override
         public Car   getCar(){//返回大众车对象
               return  new DaZhongCar();  //获取大众车的对象  
          }    
    }
    

      现代车的工厂类

           

    public class  XianDaiFactory  implements  CarFactory{
         @Override
         public Car   getCar(){//返回大众车对象
               return  new XianDaiCar();  //获取大众车的对象  
          }    
    }
    

      测试类:

    public class Test01 {
    	public static void main(String[] args) throws Exception {
    		//获取一个大众车
    		DaZhongFactory dzf=new DaZhongFactory();
    		
    		Car car = dzf.getCar();
    		car.getCar();
    	}
    }
    

      

                                                                                                                                                                                                                                                                                          

  • 相关阅读:
    剑指offer之第一个只出现一次的字符
    剑指offer之求1+2+...n
    剑指offer求两个整数之和(要求在函数体内不得使用+、-、*、/四则运算符号)
    剑指offer之从上往下打印二叉树
    剑指offer之栈的压入、弹出序列(利用辅助栈)
    58笔试-忘记题目
    联通软研院2020年球季校招笔试第三题 20190916
    简单的计算小技巧
    前端访问不到本地图片,IDEA设置Tomcat虚拟路径
    求最大子列和问题
  • 原文地址:https://www.cnblogs.com/fjkgrbk/p/Method_Factory.html
Copyright © 2011-2022 走看看