是因为现有的OO环境不支持的原因,所以会弄得很麻烦,
例如一个排版算法很好,但是排版的元素必须是排版
元素类,我想把一个Button排到里面行不行呢,不行,
因为Button是一个Control,根本不支持。如果要支持,
重写Button从排版元素类继承,但是我又需要Button响应
鼠标,那就多重继承吧。类似于一个Button在本质上到底
是个什么的问题,会时时困扰设计者。
如果唯现象论,ok,Button提供了一个接口,伪装成一个
排版元素,那好,它就是一个排版元素了。
你有没有在一个项目中自己抽象出几十个左右的类,超过
3层继承的,如果你有尝试过,就知道是多么痛苦的过程
了,而这些痛苦的抽象,对于一个应用项目而言,是完全
不必要的。
至于良好的抽象,也还是需要的,只不过不是一步到位的
抽象,而是在实践中一步步完善的渐进过程。
现象论,还是本质论,这是一个大问题。