• 设计模式之工厂方法模式


    设计模式之工厂方法模式

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

        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();
    	}
    }
    

      

                                                                                                                                                                                                                                                                                          

  • 相关阅读:
    protobuf简单测试应用
    golang代码片段(摘抄)
    ibatis中 $ 于 # 的 区别?
    eclipse debug 执行到断点处并没有停下,断点无效问题
    使用selenium遇到java.lang.NoSuchMethodError: org.apache.xpath.XPathContext,排查
    设置MAVEN_OPTS的推荐方法
    UI型Bug定义的处理方法
    select count(*)和select count(1)的区别
    mac下搭建java开发环境:eclipse+tomcat+maven
    eclipse中svn提交报错的解决
  • 原文地址:https://www.cnblogs.com/fjkgrbk/p/Method_Factory.html
Copyright © 2020-2023  润新知