嘿伙计们,我是新来的,但希望我的问题很清楚。
我的代码是用 Python 编写的。我有一个代表一般网站的基类,这个类包含一些从网站获取数据并保存的基本方法。该类由许多其他类扩展,每个类都代表一个不同的网站,每个类都具有特定于该网站的属性,每个子类都使用基类方法来获取数据。所有站点都应在其上解析数据,但许多站点共享相同的解析功能。所以我创建了几个解析类,它们包含不同解析方法的功能和属性(我大约有六个)。我开始思考将这些类与需要它们的网站类集成的最佳方式是什么。
起初我认为每个网站类都会保存一个类变量,其中包含与之对应的解析器类,但后来我认为必须有更好的方法来做到这一点。
我读了一点,并认为依靠 Mixins 为每个网站集成解析器可能会更好,但后来我认为虽然这会起作用,但它并不“听起来”正确,因为网站类没有从解析器类继承的业务(甚至认为它只是一个 Mixin,并不意味着是一个完整的类继承),因为除了网站使用解析器功能之外,它们没有任何关系。
然后我想我可能会依靠我看到的一些依赖注入代码来将解析器注入到每个网站,但这听起来有点矫枉过正。
所以我想我的问题基本上是,什么时候最好使用每种情况(在我的项目和任何其他项目中),因为它们都完成了这项工作,但似乎并不是最合适的。
感谢您提供的任何帮助,我希望我很清楚。
添加一个小模拟示例来说明:
class BaseWebsite():
def fetch(): # Shared by all subclasses websites
....
def save(): # Shared by all subclasses websites
....
class FirstWebsite(BaseWebsite): # Uses parsing method one
....
class SecondWebsite(BaseWebsite): # Uses parsing method one
....
class ThirdWebsite(BaseWebsite): # Uses parsing method two
....
等等