我真的不知道怎么说出这个问题,所以我试着用一个例子来解释它。
我们说我有三个GUI类:
所有这些都是彼此独立的,它们之间没有继承。 现在我有一个功能"拖()"这使得表面/精灵可以拖动,我想将这个函数实现为所有这三个的方法。
由于它是所有实现的完全相同的代码,我发现重写代码很烦人,麻烦和不好的做法。 到目前为止,我唯一想到的就是为它制作一个单独的类并继承这个类。但这似乎也不是一条路。
我非常感谢你的一些建议。
修改的
设置稍有不同的另一个例子 - 我有以下类:
只有第一个是独立的,其他的依赖于第一个(必须是继承的)。 最终用户应该毫不费力地选择简单的BaseSurface,一个可实现可拖动,一个可调整大小,一个使用eventHandler,以及任何组合。通过"没有任何努力"我的意思是最终用户不应该制作自定义类并继承所需的类,并调用某些类共享的适当方法( init ,update,...)。
所以我能做的就是为每种可能的组合制作一个类,例如。 " BaseSurfaceDrag"," BaseSurfaceDragResize",... 这会很快变得凌乱。对此有何不同和更好的方法?
答案 0 :(得分:1)
这正是您应该使用父类的情况。在这两种情况下,您的父类(逻辑上)应该类似于:
npm install
然后你的每个其他类继承自
class Drawable(object):
def drag(self, *args, **kwargs):
"""Drag and drop behavior"""
# Your code goes here
在第二种情况下,您拥有的是接口,因此您可以在逻辑上执行以下操作:
class BaseSurface(Drawable):
# stuff
class DetailedSurface(Drawable):
# stuff
class Sprite(Drawable):
# stuff