我有一个第三方对象,它使用继承自Java.lang.Object的toString方法。这个方法相当无用。然而,我想不出一个干净的设计来覆盖这种行为。以下是不同的方法。
- 子类化并覆盖toString方法。
问题:如果内部调用原始对象的调用调用toString并检查返回的字符串,则现在将中断。我不想破坏现有的对象,也不想假设第三方代码的干净程度。
- 创建一个String工厂,其中包含一个createString方法。该方法对除了我需要处理的第三方对象之外的所有对象调用toString,但对于我的对象,则以自定义方式构建一个字符串。
问题:我既不能要求将所有内容都传递给createString方法且永远不直接调用toString(在大型代码库中这是荒谬的),也不能轻松记住应通过哪些对象(因为存在特定的逻辑)。
有没有人有一种感觉很清晰的设计模式?
myToString
方法,并在您自己的代码中使用它,这可能是一种解决方案,具体取决于您想要实现什么。这样做是否可行? - cyco130toString()
并依赖它的答案来判断正确性,则他们未能理解toString()
的目的。 - corsiKa