我在这里寻求一点清晰。对于我的一个项目,我编写了一个容器,其中包含一堆不同的几何形状。我的界面是这样的:
Container::AddTriangle(Point, Point, Point);
Container::AddSquare(Point, Point, Point, Point);
等等等等。我喜欢这个界面,因为它会进行编译时检查以确保您拥有所需的数据。但是,在与我的团队讨论时,有人提出了这个接口:
enum SHAPE { Triangle, Square };
Container::AddShape( std::vector<Point>, SHAPE );
它的论点是它通过只有一个函数而不是多个函数来提供更简洁的代码。虽然我当然更喜欢第一种方法,但我没有反对第二种方法的任何论据。有没有人遇到过这种选择?一种选择是否比另一种更好(或至少在传统上是首选)?
注意:在有人提议之前:
Container::Add( Shape )
我想让您知道,这不是解决我的具体问题的好方法。我保证。