有很多成员的班级的最佳实践

Bry*_*yan 10 c++ parameters

关于在C++中组织类成员(特别是有很多)的最佳方法的任何意见.特别是,一个类有很多用户参数,例如一个优化某些功能的类,并且具有多个参数,例如迭代次数,优化步骤的大小,使用的具体方法,优化函数权重等等.我尝试了几个一般的方法,似乎总是找到一些非理想的东西.只是好奇别人的经历.

  1. 类中的结构
  2. 类外的结构
  3. 公共成员变量
  4. 具有Set()和Get()函数的私有成员变量

更具体地说,我正在处理的代码跟踪一系列图像中的对象.所以一个重要的方面是它需要在帧之间保留状态(为什么我不只是制作一堆函数).重要的成员函数包括initTrack(),trackFromLastFrame(),isTrackValid().并且有一堆用户参数(例如,跟踪每个对象跟踪的点数,帧之间可以移动多少点,使用的跟踪方法等等)

Ste*_*and 5

如果你的班级很大,那么你的班级很糟糕.一个班级应尊重单一责任原则,即:一个班级应该只做一件事,但应该做得好.("只有一个"是极端的,但它应该只有一个角色,而且必须明确实施).

然后,您创建的类通过组合与这些单一角色的小类进行丰富,每个类都有一个清晰而简单的角色.

BIG函数和BIG类是嵌套的错误,误解和不必要的副作用(特别是在维护期间),因为NO MAN可以在几分钟内学习700行代码.

所以BIG类的策略是:Refactor,Composition只有很少的类,只针对他们所做的事情.

  • 拥有大量参数并不意味着课程很大.该类可能做一件事,但需要很多参数. (3认同)

Pau*_*sik 2

这一切都取决于:

  1. 仅当您需要组织非常多的项目时,内部结构才有用。如果是这种情况,您应该重新考虑您的设计。
  2. 如果外部结构将与相同或不同类的其他实例共享,那么它将很有用。(模型或数据对象类/结构可能是一个很好的例子)
  3. 仅适用于琐碎的、一次性的代码。
  4. 这是标准的处理方式,但这完全取决于您将如何使用该类。