码迷,mamicode.com
首页 > 其他好文 > 详细

2.工厂方法模式

时间:2019-07-21 23:59:49      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:多态性   需要   img   任务   场景   调用   道具   uri   接口   

  • 一、角色
    • 抽象工厂(Abstract Factory)角色:所有具体工厂类的接口
    • 具体工厂(Concrete Factory)角色 :实现抽象工厂接口的具体工厂类
    • 抽象产品(AbstractProduct)角色 :所有被创建实例的公共接口
    • 具体产品(Concrete Product)角色 :创建的具体实例对象,具体产品由具体的工厂创建
  • 二、适用场景
    • 一个类不知道它所需要的对象的类:在工厂方法模式中,客户端不需要知道具体产品类的类名,只需要知道所对应的工厂即可,具体的产品对象由具体工厂类创建;客户端需要知道创建具体产品的工厂类
    • 一个类通过其子类来指定创建哪个对象:在工厂方法模式中,对于抽象工厂类只需要提供一个创建产品的接口,而由其子类来确定具体要创建的对象,利用面向对象的多态性和里氏
    • 将创建对象的任务委托给多个工厂子类中的某一个,客户端在使用时可以无需关心是哪一个工厂子类创建产品子类,需要时再动态指定,可将具体工厂类的类名存储在配置文件或数据库中
  • 三、实例
    • 图-1中的Factory是抽象工厂角色,CircleFactory、RectangleFactory、SquareFactory是具体工厂角色,它们都实现了Factory接口,并对应的依赖相应的具体产品类Circle、Rectangle、Square,这些具体产品类都实现了抽象产品接口Shape,在客户端进行调用的时候只需要知道具体产品类的具体工厂就可以进行类的创建,还可以写在配置文件中进行工厂类的动态指定
    • 代码地址:https://github.com/lanhei/DesignPattern/tree/master/src/com/lanhei/patterns/factoryabstract
      技术图片
      图-1

2.工厂方法模式

标签:多态性   需要   img   任务   场景   调用   道具   uri   接口   

原文地址:https://www.cnblogs.com/zhongj/p/11221935.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!