我在一个Java程序员团队工作.我的一位同事不时建议我做"只添加一个类型字段"(usu."String type").或者代码将承载" if (foo instanceof Foo){...} else if( foo instanceof Bar){...}".
尽管如此,乔什布洛赫的警告"标记的类是一个模仿正确的类层次结构",我对这种事情的一线回应是什么?那么我该如何更认真地阐述这个概念呢?
我很清楚 - 上下文是Java - 正在考虑的对象类型就在我们的集体面前 - IOW:紧跟在"class","enum"或"interface"之后的单词等.
但除了难以证明或量化(在现场)"它使你的代码更复杂",我怎么说"在一个(或多或少)强类型语言中打鸭是一个愚蠢的想法,提出了更深层次的设计病理学?