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

工厂模式之——工厂方法模式

时间:2020-07-23 01:46:09      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:优缺点   factory   实例化   http   cto   技术   父类   封装   额外   

定义:

 定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

   相比于简单工厂消去了内部判断逻辑,遵守了开放封闭原则。但是代码量和逻辑复杂度更高了。

结构图:

   技术图片

 

代码:水果工厂

(父类)水果类:

Class Fruit

{

  。。。

}

(子类)苹果类:

Class Apple : Fruit

{

。。。

}

水果工厂抽象类:

Class FruitFactory

{

//生产水果抽象方法

Fruit*       CreateFruitFactory();

}

苹果工厂子类:

Class AppleFactory : FruitFactory

{

//生产苹果方法

Fruit*       CreateFruitFactory()
{
  return new Apple(); 
}

}

客户端:

FruitFactory CFruitFactory = new AppleFactory();//如果要生产草莓,加一个草莓工厂,一个草莓水果子类,这里换成new StrawberryFactory()就行了。

Fruit* CFruit = CFruitFactory.CreateFruitFactory();//苹果对象生产完成

 

使用时机:

  可以和简单工厂互相替换,需要根据具体项目而定。二者各有优缺点,就原则来说,工厂方法模式更好。

 

优点:克服了简单工厂违背开放封闭原则的缺点,又保持了封装对象创建过程的优点。

缺点:产品和工厂类成对增加,增加额外开发量、工程复杂度、编译速度。

 

工厂模式之——工厂方法模式

标签:优缺点   factory   实例化   http   cto   技术   父类   封装   额外   

原文地址:https://www.cnblogs.com/haosk/p/13363899.html

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