is-A和has-A的区别
来源:互联网 发布:标准差计算软件 编辑:程序博客网 时间:2024/05/19 10:40
Is-a”与"Has-a"的关系。。。"Is-a”代表类之间或类与接口的继承关系,比如猫是动物,狗也是动物,都继承了动物的共同特性,再用OO语言实现时,应将猫和狗定义成两种类,均继承动物类。"Has-a"代表的是对象和他成员的从属关系,同一种类的对象,通过它们的属性的不同值来区别。比如张三和李四都是人,但他们的名字不一样,可以以此区分这两个具体的人。名字应该作为人的成员变量。如果将名字叫“张三”的人和名字叫“李四”的人分别定义成两个类,均继承“人”这个类,显然是不合理的。
装饰模式中有出现两者同时用的情况,一个类在接口上表现为is-a的继承关系,但在实现上又表现为has-a的组合关系,简要代码:
abstract class Decorator : Component//---Decorator “is-a” Component
{
protected Component component;//---Decorator “has-a” Component
public void SetComponent(Component component)
{
this.component = component;
}
public override void Operation()
{
if (component != null)
{
component.Operation();
}
}
}
{
protected Component component;//---Decorator “has-a” Component
public void SetComponent(Component component)
{
this.component = component;
}
public override void Operation()
{
if (component != null)
{
component.Operation();
}
}
}
0 0
- is-A和has-A的区别
- is-A和has-A的区别
- has a 和 is a 的区别
- has a / is a 的区别
- has a / is a 的区别
- IS-A/HAS-A的区别
- has a / is a 的区别
- has a / is a 的区别
- is-a 与 has-a的区别
- is a 与 has a的区别
- has a / is a 的区别
- is-a、has-a和like-a、组合、聚合和继承 两组概念的区别
- is-a、has-a和like-a、组合、聚合和继承 两组概念的区别
- “is a” 和”has a“
- HAS-A和IS--A
- “is a” 和”has a“
- is-a和has-a
- is-a 和 has-a
- Hadoop节点挂在裸盘
- 历史上出现过的主流C/C++ 编译器都有哪些?
- OneAlert 入门(三)——事件分析
- 静态成员函数和普通成员函数的区别
- android edittext 限制输入框小数位数
- is-A和has-A的区别
- Android 关闭多个Activity总结
- 【Baltic2014】【BZOJ3916】friends
- C++实现类、类的成员函数、主函数分离
- Realm Swift Objective-C 学习教程
- 使用api工具时get请求和post请求的不同
- 人脸情感识别相关的资料
- 性能检查
- Activity 重载方法 onStart和onResume、onPause和onStop的区别