经典UML教程类继承与不变式分析
经典 UML 教程的类设计思路挺有启发性,尤其是讲状态空间继承那块,拿RightIsoscelesTriangle
类做例子,结合IsoscelesTriangle
和RightTriangle
的共同点来讲类不变式,思路还挺清晰的。
类的不变式说白了就是类要一直满足的条件,比如三角形的边满足三角不等式,直角三角形还得满足a*a + b*b = c*c
。UML 虽然不强制这些,但写代码时还是得脑子里有这根弦。
而且它还点到一个关键点:C++和 Java这种语言里,不变式只是“纸上谈兵”,编译器不会替你校验。所以你要继承的时候,就得自己考虑继承链上的逻辑是不是自洽,不然一不小心就出 BUG。
如果你也在设计类继承结构,尤其是涉及状态空间和类不变式,这篇文章挺值得啃的。配合底下那几个链接,像是子类状态空间扩展和Spring 中的空指针继承,能让你对“继承”这件事想得更透。
哦对,还有篇forimmer讲状态存储的,也挺契合“状态空间”这个话题,写 React 的同学别错过。
如果你正在重构项目的类结构,或者就是单纯想搞清楚“类之间怎么合理继承”,那建议你多读两遍,理解了,UML 图画得才不悬空。
12.98MB
文件大小:
评论区