量子动力

作一颗IT量子
数据加载中……
面向对象中的IS A和HAS A 问题

“is a”代表的是类之间的继承关系,比如PC机是计算机,工作站也是计算机。PC机和工作站是两种不同类型的计算机,但都继承了计算机的共同特性。


在C#开发时,应将pc与工作站设计成不同的类,然后继承于计算机这个类。

再比如,苹果不水果中的一种,桃子也是水果中的一种,区别是它们属于不同的水果类别,但都继承了水果的共同特性,都有水果名称,重量,形状,色彩等。

在实际开发中,需要把这两种不同的水果设计成不同的类,分别继承于水果这个类。苹果与桃子都是水果的一个具体实例,水果只是一个抽象类。


“has a”代表的是对象和它的成员的从属关系。同一种类的对象,通过它们的属性的不同值来区别。比如一台PC机的操作系统是Windows,另一台PC机的操作系统是Linux。操作系统是PC机的一个成员变量,根据这一成员变量的不同值,可以区分不同的PC机对象。
再比如张三和李四都是人,但他们的名字不一样,可以以此区分这两个具体的人。名字应该作为人的成员变量。如果将名字叫“张三”的人和名字叫“李四”的人分别定义成两个类,均继承“人”这个类,显然是不合理的。

Tag标签: 系统设计

posted on 2008-07-23 22:26 量子动力 阅读(39) 评论(0)  编辑 收藏 网摘 所属分类: UML与系统设计


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索



相关文章:


相关搜索:
系统设计

相关链接:
 
因为理解所以慈悲 @ Techsailor team