is-a 是一个(种族)
has-a 有一个(内含)a
举例说明:
如果你确定两件对象之间是is-a的关系,那么此时你应该使用继承;比如菱形、圆形、三角形和方形都是形状的一种,那么他们都应该从形状类继承而不是聚合。
如果你确定两件对象之间是has-a的关系,那么此时你应该使用聚合;比如电脑是由显示器、CPU、硬盘等组成的,那么你应该把显示器、CPU、硬盘这些类聚合成电脑类,而不是从电脑类继承。
本文探讨了面向对象编程中is-a与has-a的概念及其应用。is-a关系适用于继承场景,例如各种形状都可视为从形状类派生。而has-a则适用于聚合场景,如电脑由多个部件组成。
is-a 是一个(种族)
has-a 有一个(内含)a
举例说明:
如果你确定两件对象之间是is-a的关系,那么此时你应该使用继承;比如菱形、圆形、三角形和方形都是形状的一种,那么他们都应该从形状类继承而不是聚合。
如果你确定两件对象之间是has-a的关系,那么此时你应该使用聚合;比如电脑是由显示器、CPU、硬盘等组成的,那么你应该把显示器、CPU、硬盘这些类聚合成电脑类,而不是从电脑类继承。
8984

被折叠的 条评论
为什么被折叠?