设计模式学习1-工厂方法模式
来源:互联网 发布:淘宝评价好评怎么修改 编辑:程序博客网 时间:2024/06/06 02:59
前几天接到吉威时代电话面试,问了一个设计模式的问题,这方面自己只是了解,但不是很熟悉,所以没回答上,于是决定现在开始学习这方面的知识,先从最简单的工厂方法模式开始:
这种模式其实就是新建一个Factory接口,每个产品都有各自的工厂继承自该接口,来生产不同的产品,以水果为例:
#include<iostream>class Fruit{public: Fruit(){}; virtual ~Fruit(){}; virtual void sayHello(void)=0; virtual void showColor(void)=0;};class Apple:public Fruit{public: Apple(){} ~Apple(){} void sayHello(void){std::cout<<"I am apple!"<<std::endl;} void showColor(void){std::cout<<"My color is red!"<<std::endl;}};class Banana:public Fruit{public: Banana(){} ~Banana(){} void sayHello(void){std::cout<<"I am banana!"<<std::endl;} void showColor(void){std::cout<<"My color is yellow!"<<std::endl;}};class Factory{public: Factory(){} virtual ~Factory(){} virtual Fruit* createFruit()=0;};class AppleFactory:public Factory{public: AppleFactory(){} ~AppleFactory(){} Fruit* createFruit(){ return new Apple();}};class BananaFactory:public Factory{public: BananaFactory(){} ~BananaFactory(){} Fruit* createFruit(){ return new Banana();}};int main(){ AppleFactory *af=new AppleFactory(); Fruit *apple=af->createFruit(); apple->sayHello(); apple->showColor(); BananaFactory *bf=new BananaFactory(); Fruit *banana=bf->createFruit(); banana->sayHello(); banana->showColor(); delete af; delete apple; delete bf; delete banana; return 0;}
0 0
- 设计模式学习1-工厂方法模式
- 学习设计模式-方法工厂设计模式
- 设计模式学习--工厂方法
- 设计模式入门学习之工厂模式(工厂方法模式)
- 设计模式入门学习之工厂模式(工厂方法模式)
- 设计模式学习--工厂方法模式
- 设计模式学习----工厂方法模式
- 设计模式 学习之工厂方法模式
- 【设计模式】工厂方法模式学习笔记
- 设计模式学习--工厂方法模式
- 设计模式学习-----工厂方法模式
- 设计模式学习笔记-工厂方法模式
- 设计模式学习—工厂方法模式
- 设计模式学习之---工厂方法模式
- 设计模式学习笔记--工厂方法模式
- 设计模式学习--工厂方法模式
- 设计模式学习笔记-工厂方法模式
- 设计模式学习--工厂方法模式
- Hadoop集群之flume安装配置
- 小萌谈Art(5)——离线编程第一战
- ReadingNotesUp
- 【bzoj 1045】[HAOI2008] 糖果传递
- android 在布局中使用自定义属性
- 设计模式学习1-工厂方法模式
- undefined和null的区别
- ABAP WORKFLOW工作流创建(一)
- AndroidStudio gradle配置
- 树链剖分
- Xcode常用快捷键
- 小程序WXML之数据绑定
- 多线程之Runnable
- uboot之start_armboot分析1