擅长:python、mysql、java
<p>我觉得你想要三个基类。一个用于<code>App</code>内容,一个用于<code>VirtualStorage</code>(和缓存)内容,一个用于<code>Storage</code>(和磁盘)内容。然后,您可以为两个拓扑创建子类,将所需的方法混合在一起。在</p>
<p>对于拓扑1,您有一个既继承了<code>App</code>和<code>VirtualStorage</code>基类的类(并且未经修改地使用<code>Storage</code>基类)。对于拓扑2,创建一个继承<code>VirtualStorage</code>和<code>Storage</code>基类的类,并未经修改地使用<code>App</code>基类。在</p>
<p>示例代码:</p>
<pre><code>class App:
def do_app_stuff(self):
pass
class VirtualStorage:
def do_virtual_storage_stuff(self):
pass
class Storage:
def do_storage_stuff(self):
pass
# topology 1
class Top1App(App, VirtualStorage):
pass
Top1Storage = Storage
# topology 2
Top2App = App
class Top2Storage(VirtualStorage, Storage):
pass
</code></pre>
<p>您可能不需要直接在不同拓扑中使用的基类的别名,我只是添加了这些名称以使其看起来更漂亮。在</p>