3
方法重载什么时候合适?
假设我正在开发一个现有的,相当大的系统。我有一个myObject类的对象MyClass(出于示例的原因,假设我正在Java中工作)。myObject是一种含有一种组合物Collection,比方说,一个List和其它目的(我认为)是无关紧要的。它包含委托方法,这些委托方法仅用于调用List它所组成的方法,以确保List它所具有的不暴露(对不起,如果我的术语错误)。 假设这List是一个,List<String>但是由于某种原因,主要的访问方法是class的mask方法SomeOtherClass。如果要在其中插入一个新的值对List,则需要一个SomeOtherClass名为的对象someObject。我会打电话给,myObject.insert(someObject)并且在insert方法内部将有一些魔术可以检索String到中放入List<String>。 现在假设我只有一个String值,没有SomeOtherClass要插入的对象。假设我无法修改该insert方法,因为它会破坏系统中的所有内容。那我应该重载该insert方法吗?还是应该在SomeOtherClass每次调用时创建一个新对象insert? 我想如果我确实超载了,它会看起来像这样…… public void insert(String s) { ... } public void insert(SomeOtherObject obj) { this.insert(obj.magicStringMethod()); } (此示例是一个人为的难题,它基于我昨天遇到的关于超载的类似(稍微复杂一些)情况。如果有不清楚的地方,我将对其进行扩展) 这是重载方法的合适地方吗?如果没有,我什么时候应该重载方法?