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

基本理论请直接找书看,这里直接给例子,欢迎大家学习、讨论、或指点改进

 

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





#文件名 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() 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值