【问题标题】:How many private variables is too much?多少私有变量太多了?
【发布时间】:2018-05-01 15:13:38
【问题描述】:

我目前正在开发我的第一个大型软件,并且遇到了一个丑陋的情况。到目前为止,我添加的大多数功能都需要一个额外的私有成员才能正常运行。这是因为大多数功能都赋予了用户更多的权力,允许他们通过传递给构造函数的参数或指定他们希望切换的设置的方法来修改我的程序。

我目前有大约 13 个私有变量,并且可以看到这种情况逐渐失控。构造函数代码开始看起来很丑陋。我想知道这是否只是添加功能的结果,或者是否有一种创造性/聪明的方法可以避免这个问题。

【问题讨论】:

  • 你能举个例子吗?
  • 听起来你正在设计一个god object。你能把功能分成多个更小的类吗?
  • python中没有“私有变量”之类的东西
  • 这是设计问题; 13 个私有变量本身并不算多,但这可能表明你的类正在做太多事情,并且可以分解为单独的类,每个类都需要较少的私有状态。
  • @JoranBeasley 让我们假装他写了“_-prefixed variables 旨在成为实现细节”,然后继续,好吗?

标签: python oop private-members


【解决方案1】:

我建议将“行为”的概念抽象化

您将有一个基类“行为”,它实际执行请求的操作,或管理对行为的修改。然后,您可以使用一组“参数”和“行为”来初始化您的代码。

您的启动代码将变成一个简单的“for”循环,而要添加/删除行为,您只需在列表中添加或删除即可。

当然,这困难的部分实际上是将行为类的活动适合您的整个程序流程。但我猜,关注“单一职责原则”将有助于解决这个问题。

【讨论】:

  • 虽然这可能是一个非常好的建议,但鉴于 OP 中提供的细节很少,我很难看到这如何适用于这个问题。
  • 也许吧。我不得不承认我的回答非常集中在最后一句话的后半部分:“我想知道......是否有一种创造性/聪明的方法来避免这个问题”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 2010-12-01
  • 2011-02-09
  • 2011-07-09
相关资源
最近更新 更多