Python 需要针对低级设计问题的指导
我有一节主课。 需要实施五种策略,客户可以在运行时从中选择一种策略。 这里我使用的是策略模式,因为它们的目标是相同的,但算法是不同的。 除了公共函数(在策略类的接口中定义)之外,如果在运行时选择了特定的策略,那么每个策略类中还可能有一些其他函数来满足某些需求。某些要求是指满足要求所需的额外方法,但在用户端可能需要,也可能不需要。 另外,我在Main类中定义了一些常用函数。对任何策略都有帮助的常用方法Python 需要针对低级设计问题的指导,python,oop,design-patterns,strategy-pattern,Python,Oop,Design Patterns,Strategy Pattern,我有一节主课。 需要实施五种策略,客户可以在运行时从中选择一种策略。 这里我使用的是策略模式,因为它们的目标是相同的,但算法是不同的。 除了公共函数(在策略类的接口中定义)之外,如果在运行时选择了特定的策略,那么每个策略类中还可能有一些其他函数来满足某些需求。某些要求是指满足要求所需的额外方法,但在用户端可能需要,也可能不需要。 另外,我在Main类中定义了一些常用函数。对任何策略都有帮助的常用方法 class Main: def __init__(self, input):
class Main:
def __init__(self, input):
self.other_work = Extra(input)
self.strategy = Factory(input)
问题1:
如何使用该类:
a = Main(input)
# if want to use some extra function
a.other_work.do_this()
# if related to particular strategy
a.strategy.uncommonStrategy1()
这些挑战是:
用户不需要知道功能在哪里实现。使用继承、python
import
或包装函数(根据设计而定)调用专用函数。理想情况下,当触发工作时,用户将不知道或不关心所使用的策略。(但不同的策略可能需要使用不同的参数等进行初始化;因此它不能完全透明)