c++ - C++ 中的 OOD : Having a class with just one method?

标签 c++ function class methods object-oriented-analysis

我正在用 C++ 编写一个程序,考虑到面向对象的设计,它在数据库中保存二手车的记录。我有一个按年份对汽车进行排序的函数,但该函数应该是其自身类中的方法、汽车类中的方法,还是任何类之外的函数?我们被教导说在面向对象设计中,一切都应该在它自己的类中,并且每个类应该只有一个责任,所以我倾向于将函数作为它自己类中的方法,但这似乎没有必要。我应该怎么办?

最佳答案

它应该是一个独立的函数,而不是任何类的成员。像这样:

void sortCars(Car * lot, unsigned int numCars)
  ...

将它包装在一个没有其他成员的类中是没有意义的;这样做不会解决任何问题,也不会让任何事情变得更容易。

让它成为 Car 的成员是没有意义的,这样做会让它访问它不需要的类的私有(private)成员,这是自找麻烦。

“一切都应该属于自己的类别”是一个粗略的准则,更适用于名词 (Car) 而不是动词 (sortCars)。

关于c++ - C++ 中的 OOD : Having a class with just one method?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29762971/

相关文章:

c++ - 捕获全局鼠标滚动,并将自定义鼠标滚动事件发送到应用程序

c++ - VC++ 标准库链接错误

C函数输入字符串并计算

javascript - 使用数组中的字符串名称运行函数

Python:对象作为另一个对象的参数

python - 如何通过继承在两个不同的类中拆分函数?初学者

c++ - 从基类方法调用虚方法

c++ - 命名空间中变量的默认/自定义值

r - 对数似然的优化,传入不同的数据集

Python:变量、继承和默认参数