Cor*_*all 3 java design-patterns
我有一个第三方对象,它使用从Java.lang.Object继承的toString方法.这种方法很无用.但是我想不出一个干净的设计来覆盖这种行为.以下不同的方法.
问题:如果原始对象内部的任何调用调用toString并检查返回的String,它们现在将中断.我不想打破现有的对象,也不想假设第三方代码的清洁度.
问题:我既不能要求所有内容都传递给createString方法,也不能直接调用toString(这在大型代码库中会很荒谬),也不能轻易记住应该传递哪些对象,因为它们有自定义逻辑.
有没有人有一个感觉干净的设计模式?
只需在util类上使用静态方法:
public class MyUtils {
public static String toString(My3rdPartyClass obj) {
// impl here
}
}
Run Code Online (Sandbox Code Playgroud)
我真的很喜欢波希米亚人的回答.
考虑到这一点,OOP解决方法就是这样
class My3rdPartyClassFormatter {
private My3rdPartyClass data;
public My3rdPartyClassFormatter(My3rdPartyClass d) { this.data = d; }
public String toString() {
// impl here
}
}
Run Code Online (Sandbox Code Playgroud)