0
我有一大堆有效算法的类,它们都从一个Mechanism类继承。然后我有一个MechanismStack类,它包含一堆这些算法类的列表,它们都是可互换/模块化的 - 即Mechanism1.encode()的输出作为输入等进入Mechanism2.encode()功能)。允许对象访问其拥有的对象的属性
这些类中的一些产生的不仅仅是输出的额外数据。我想存储在MechanismStack类这些额外的数据(这也是一个对象 - 也有由不同的算法多种不同的堆栈)
class MechanismStack:
self.stack = [Mechanism1(), Mechanism2(), Mechanism3()]
self.attribute = list()
def encode(self, input):
#process input through self.stack Mechanisms
class Mechanism1(Mechanism):
def function(self, input):
#code
owningMechanismStack.attribute = ['some', 'list']
myStack = MechanismStack()
myStack.encode('myInputString')
这是我的第一个想法,也是我目前实现的,但是我只是将它添加到生成额外元数据的机制中。增加所有者还是仅需要访问MechanismStack的所有者会更好? – Aeroblop
这可能取决于整体设计。为了保持它的灵活性,我在超类中做了这样的事情,以使'MechanismStack'不需要知道'Mechanism'子类需要返回引用的细节,哪些不需要。 – Barmar