【问题标题】:python how to abstract the class of member variablepython如何抽象类的成员变量
【发布时间】:2021-08-30 22:56:33
【问题描述】:

假设我有一个像下面这样的模块

class B:
  def ...
  def ...

class A:
  b: B

  def ...
  def ...

我只使用 B 类作为 A 类的成员变量

当我尝试为我的业务逻辑抽象这个模块时,我应该怎么做?

  1. 一个大接口,A类和B类都有抽象方法
  2. 两个接口,分别对A类和B类有抽象方法
  3. 以上都是错误的。另一种方式

【问题讨论】:

  • 我想我不明白您要解决什么问题,但无论哪种方式,它都不是 Stack Overflow 的主题。这里不是就代码设计提出主观问题的地方。
  • @KarlKnechtel 我只是为我的软件构建了一个更好的架构。我是软件设计的初学者,但我现在必须在工作中制作真实世界的软件。所以在做出决定之前,我想得到一些建议。我不知道我不能在 stackvoverflow 上问关于代码设计的主观问题。如果打扰到你,我很抱歉

标签: python interface architecture abstraction


【解决方案1】:

1 和 2 都是正确的方法,但这完全取决于您的应用程序。

我认为,当您的两个类具有独立的工作方式并且彼此完全不同时,两个接口分别具有 A 类和 B 类的抽象方法是正确的方法。

但是,正如您在代码中提到的那样,您在 A 类中继承了 B 类。如果您为 A 类创建单个接口,它还允许您访问 B 类的方法。因此,这种方法是好的。此外,这种方法会缩短代码的长度,从而加快处理速度。

我希望这能帮助您做出决定。如果需要任何其他说明,请告诉我。

【讨论】:

  • 感谢您的回复。我认为在这种情况下 2 个单独的接口是合适的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-13
  • 1970-01-01
  • 1970-01-01
  • 2019-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多