您的位置:首页 > 编程语言 > C语言/C++

23种设计模式之抽象工厂模式(创建型,2 AbstractFactory,c++实现)

2018-02-25 20:04 696 查看




#include <stdlib.h>#include <stdio.h>#include <iostream>
using namespace std;
class Fruit {public:
virtual void sayName() = 0;};
class SouthBanana :public Fruit {public:void sayName() {cout << "I am south banana" << endl;}};
class NorthBanana :public Fruit {public:void sayName() {cout << "I am north banana" << endl;}};
class SouthApple :public Fruit {public:void sayName() {cout << "I am south apple" << endl;}};
class NorthApple :public Fruit {public:void sayName() {cout << "I am north apple" << endl;}};
class AbstractFactory {public:virtual Fruit *createBanana() = 0;virtual Fruit *createApple() = 0;};
class SouthFactory :public AbstractFactory {public:Fruit *createBanana() {return new SouthBanana;}
Fruit *createApple() {return new SouthApple;}};
class NorthFactory :public AbstractFactory {public:Fruit *createBanana() {return new NorthBanana;}
Fruit *createApple() {return new NorthApple;}};
void main() {AbstractFactory *f = NULL;Fruit *fruit = NULL;
f = new SouthFactory;fruit = f->createBanana();fruit->sayName();delete fruit;fruit = f->createApple();fruit->sayName();delete fruit;delete f;
f = new NorthFactory;fruit = f->createBanana();fruit->sayName();delete fruit;fruit = f->createApple();fruit->sayName();delete fruit;delete f;}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: