作者qrtt1 (愚人)
看板java
标题Re: [问题] 想请问interface的具体意义
时间Wed Jan 24 07:39:38 2007
※ 引述《[email protected] (汀)》之铭言:
[...]
: 那就是 Liskov Substitution Principle;
: 因为蛮多 OO 设计者容易陷入程式与现实世界性质对应的迷思,
: 将 is-almost-a 的关系当成 is-a 的关系来描述,
: 常听到的一个例子就是,
: 在数学上正方形是一种矩形,
: 所以就会有人做出一个 Rectangle 的 base class 出来,
: 并让 Square 继承它,
: 但是 Square 的 setWidth() 和 setHeight() 都会同时改变宽和高,
: 而 Rectangle 的这两个 method 并不会如此,
: 当 programmer 以多型方式使用 Rectangle 家族的任何 objects 时,
: 会因此发生 semantic inconsistent 的现象。
: 这类问题的严重性在於「程式码不是只有一个人在维护」时,
[...]
感谢分享啊,原来这总现象的 keywords 是
semantic inconsistent
Liskov Substitution Principle
(知识与 keyword 是可遇不可求的 XD)
不过既然 Square 是 Rectangle 的 special case
这样的关系应该以装饰者的角度来看待噜
正确地覆写父类别并能通过 w/h 相等的 unit test
PS. 当然 >"< 我用说的确实比真的在写时简单
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.59.94.117