GeekBand class8

Shape * ashape =newCircle();

classMainForm :publicForm

{

ShapeFactory*  factory;//工厂public:

MainForm(ShapeFactory*factory)

{this->factory =factory;

}virtual~MainForm();voidMainCreate()

{//多态newShape * ashape =factory->CreateShape();//获取Noashape->GetNo();

}

};

classShape

{public:

Shape(intno =0) :no_(){}virtual~Shape(){}intGetNo(){returnno_; }intSetNo(intno_){}private:intno_;

};

classShapeFactory

{public:

ShapeFactory();virtualShape * CreateShape() =0;virtual~ShapeFactory(){}

};

classLine :publicShape

{public:

Line(){}virtual~Line(){}

};classRec :publicShape

{public:

Rec(){}virtual~Rec(){}

};classCircle :publicShape

{public:

Circle(){}virtual~Circle(){}

};

classLineFactory :publicShapeFactory

{public:

LineFactory();virtual~LineFactory();virtualShape*CreateShape()

{returnnewLine();

}

};classRecFactory :publicShapeFactory

{public:

RecFactory();virtual~RecFactory();virtualShape*CreateShape()

{returnnewRec();

}

};classCircleFactory :publicShapeFactory

{public:

CircleFactory();virtual~CircleFactory();virtualShape*CreateShape()

{returnnewCircle();

}

};

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 针对DrawingSystem中的基类Shape和各个子类Line、Rec、Circle。为支持更多的形状子类,请...
    博览网小学员阅读 259评论 0 0
  • 建议下载pdf附件。 l Factory Method****(工厂方法)****** 意图:**** 定义一...
    诵之思之阅读 279评论 0 0
  • 再读高效c++,颇有收获,现将高效c++中的经典分享如下,希望对你有所帮助。 1、尽量以const \enum\i...
    橙小汁阅读 1,241评论 0 1
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,765评论 18 399
  • 1.骨头也可以传声,捂住耳朵轻轻说话,别人听不见,自己听的见。 2.亢龙有悔。 3.好的事物的内涵都有坏的积淀。
    Eric小风阅读 227评论 0 0