恰逢学习c++模板,练习题中有一题要求:
使用工厂模式,实现图形的绘制。
不会啊,得,查一下,一下是我主要参考的两篇博文
ps:另参考书籍:c++primer 大话数据结构
得到一个最终目的,使用抽象工厂模式实现。
具体模式区别就不多说了,但是抽象工厂模式是最终形态,优点是:
不用修改已有代码,开放封闭原则:对扩展开放,对更改封闭
先把框架搭好
point
shape
factory
以下是第一步最简单的简单工厂模式的代码,并为加入easyx库,仅仅实现输出图形的名称
/*
CopyRight Lu 2017 ZJ
简单工厂模式绘制几何形状
*/
#include <iostream>
using namespace std;
enum ch{triangle,rectangle,circle};
class point
{
private:
float x,y;
public:
point(float x=0,float y=0)
{
this->x=x;
this->y=y;
}
};
class shape
{
public:
shape(){}
virtual void show()=0;
};
class triangle1:public shape
{
private:
point a,b,c;
public:
triangle1(){}
void show()
{
cout<