zoukankan      html  css  js  c++  java
  • python设计模式 之 简单工厂模式

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

    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 None
    
    fac = 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;
    }
    


     

     

  • 相关阅读:
    linux mail 简操作
    数据挖掘-概念与技术-第10章聚类作业题
    机器学习实战 -> 无监督学习
    机器学习实战 -> 利用PCA&&SVD来简化数据
    贪婪算法
    统计学习方法 –> 支持向量机
    统计学习方法 –> 逻辑死地回归与最大熵模型
    最优二叉搜索树
    动态规划
    统计学习方法–> 决策树
  • 原文地址:https://www.cnblogs.com/lytwajue/p/7049081.html
Copyright © 2011-2022 走看看