python设计模式 之 简单工厂模式

来源:互联网 发布:淘宝钻石展位怎么使用 编辑:程序博客网 时间:2024/05/21 09:12

简单工厂模式属于类的创建型模式,适合用来对大量具有共同接口的类进行实例化,它可以推迟到运行的时候才动态决定要创建哪个类的实例,而不是在编译时就必须知道要实例化哪个类。

 

python:

#!/usr/bin/env python# -*- coding: utf-8 -*-class Circle(object):def draw(self):print 'draw circle'class Rectangle(object):def draw(self):print 'draw Rectangle'class ShapeFactory(object):def create(self, shape):if shape == 'Circle':return Circle()elif shape == 'Rectangle':return Rectangle()else:return Nonefac = ShapeFactory()obj = fac.create('Circle')obj.draw()


c++:

 

#include <iostream>#include <string.h>using namespace std;class Shape{public:virtual void draw(){}};class Circle : public Shape{public:void draw(){cout << "draw circle" << endl;}};class Rectangle : public Shape{public:void draw(){cout << "draw Rectangle" << endl;}};class ShapeFactory{public:static Shape* create(const char *opt){if (opt == NULL)return NULL;if (!strcmp(opt, "Circle"))return new Circle();else if (!strcmp(opt, "Rectangle"))return new Rectangle();else return NULL;}};int main(){Shape *obj = ShapeFactory::create("Rectangle");if (obj)obj->draw();return 0;}


 

 

0 0
原创粉丝点击