我知道您不能根据参数的类重载 Smalltalk 中的方法。我留下了这个设计问题:
我有三个类:一个实现 Mail,一个实现 Sentence,一个实现 Word。这三个类有一个名为 addContent 的方法,它接收一个字符串作为参数。Mail 和 Sentence 有另一个名为 addContent 的方法来接收 Word,Mail 有另一个 addContent 来接收 Sentence。另一方面,它们都有一个名为 returnAsString 的方法,该方法将内容作为字符串返回。
我有以下几种可能性:
通过依赖项实现它们:Mail 有一个 Sentence 集合,Sentence 有一个 Word 集合(而 Word 只有一个字符串)。然后可以通过要求参数以字符串形式返回其内容来实现 addContent,并使对象的属性使用 addContent(String) 来加载它。我发现这种方法的问题是我必须为 String 对象添加一个方法以将自身作为 String 返回,而其余的方法应该是 returnAsString
使它们都继承自一个基本抽象类。我只是不知道这将如何工作,因为我还让 Word 有一种通过句子添加内容的方法,这是错误的。
有任何想法吗?
谢谢