您的位置:首页 > 编程语言 > Python开发

设计模式一(简单工厂,采用python实现)

2012-12-07 20:46 681 查看
基本理论请直接找书看,这里直接给例子,欢迎大家学习、讨论、或指点改进



刀具是祖先类,铣刀和钻头继承了刀具



#文件名 tool.py

# -*- coding: utf-8 -*-
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
from future_builtins import *
import sys

class Tool(object):
    '''刀具的祖先类 '''
    def __init__(self,name=None,diameter=0):
        self.name=name
        self.diameter=diameter
    def make(self):
        result='made nothing'
        print (result)
        return result
        
        
class MillTool(Tool):
    def __init__(self, name=None,diameter=0):
        super(MillTool,self).__init__(name,diameter)
    def make(self):
        result=self.name+ ' diameter=%d' %self.diameter  + ' have been made'
        print (result)
        return result
       
class DrillTool(Tool):
    
    def __init__(self, name=None,diameter=0,drill=0):
        self.drill=drill
        super(DrillTool,self).__init__(name,diameter)
        
    def make(self):
        result=self.name+ ' diameter=%d' %self.diameter + ' drill=%d' %self.drill + ' have been made'
        print (result)
        return result

#为了生产刀具,建立一个简单工厂

class SimpleToolFactory(object):
    def creat(self,tool_type,name=None,diameter=10,drill=2):
        tool=Tool()
        if tool_type=='mill':
            tool=MillTool(name,diameter)
        elif tool_type=='drill':
            tool=DrillTool(name,diameter,drill)
        else:
            print('tool type error')
        return  tool

#客户端为

if (__name__ == "__main__"):
    
    tool=Tool() 
    
    tool_factory=SimpleToolFactory()
    
    tool=tool_factory.creat("mill","zjm",10)
        
    tool.make()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: