基本理论请直接找书看,这里直接给例子,欢迎大家学习、讨论、或指点改进
刀具、铣刀、钻头类代码和关系同设计模式一相同
在简单工厂的基础上进一步封装(客户端由认识两个类,封装成只认识策略类就可以了)
增加策略类
#文件名 tool.py
class StrategyAddFactory(object):
def __init__(self,tool_type,name=None,diameter=10,drill=2):
self.tool=Tool()
self.tool_type=tool_type
if tool_type=='mill':
self.tool=MillTool(name,diameter)
elif tool_type=='drill':
self.tool=DrillTool(name,diameter,drill)
else:
print('tool type error')
def make(self):
self.tool.make()
#客户端:
if (__name__ == "__main__"):
strategy=StrategyAddFactory('drill','sunny',10,3)
strategy.make()