这个OOP概念叫什么?
有人能告诉我以下OOP概念的名称吗(如果它确实是OOP概念的话!): 我有两个类:A和B。它们都有两个方法(都不同)。现在我创建了第三个类C。现在我想向C公开a&B的所有方法。下面是一些演示:这个OOP概念叫什么?,oop,terminology,Oop,Terminology,有人能告诉我以下OOP概念的名称吗(如果它确实是OOP概念的话!): 我有两个类:A和B。它们都有两个方法(都不同)。现在我创建了第三个类C。现在我想向C公开a&B的所有方法。下面是一些演示: class A int method_in_A_one() { } int method_in_A_two() { } end class B int method_in_B_one() { } int method_in_B_two() {
class A
int method_in_A_one() {
}
int method_in_A_two() {
}
end
class B
int method_in_B_one() {
}
int method_in_B_two() {
}
end
class C
C() {
A an_instance_of_a;
B an_instance_of_b;
}
}
Now I want to be able to do this:
C instance_of_c = new C;
insance_of_c.method_in_A_one();
insance_of_c.method_in_A_two();
insance_of_c.method_in_B_one();
insance_of_c.method_in_B_two();
我还没有真正的使用它,但我确信有一个特定的概念来处理它。提前谢谢,ell.这是关于和:
- 对象组合是指当您的类由其他类组成时(在示例中-
由C
和A
组成)B
- 委托是指所属类中有一个方法委托给构成类的方法
C
既是A
又是B
。尽管有些语言禁止这样做,但无论如何,对象组合被认为是一种更好的做法。这是关于和:
- 对象组合是指当您的类由其他类组成时(在示例中-
由C
和A
组成)B
- 委托是指所属类中有一个方法委托给构成类的方法
请注意,还有另一种方法可以实现这一点——多重继承,尽管您的示例并没有具体说明这一点。这意味着
C
既是A
又是B
。尽管有些语言禁止这样做,但无论如何,对象组合被认为是一种更好的做法。听起来像是多重继承,或是一个公共接口。但这与在C中封装A和B而不作为基类公开的情况不同。听起来像是多重继承,或是公共接口。但不完全是因为在C中封装了A和B,而没有将它们作为基类公开。所以这里有一些事情要做。您的C类型是由A和B类型的组合创建的,这是子类化的常见替代方法
如果C的目的是提供一个更简单的接口来使用a和B,那么这就是facade模式的一个例子
如果C为其包装对象提供了额外的功能(例如,通过在包装对象上调用方法_之前,让方法_的实现做一些额外的工作),这将是decorator模式的一个示例
<>如果C将A/B中的概念转换为另一个库所期望的形式(例如:在C++中使用一个C++ STD::在NSCORBA子类中映射),那就是<强>适配器<强>模式。
,所以这里有一些事情。您的C类型是由A和B类型的组合创建的,这是子类化的常见替代方法
如果C的目的是提供一个更简单的接口来使用a和B,那么这就是facade模式的一个例子 如果C为其包装对象提供了额外的功能(例如,通过在包装对象上调用方法_之前,让方法_的实现做一些额外的工作),这将是decorator模式的一个示例<>如果C将A/B中的概念转换为另一个库所期望的形式(例如:在C++中使用一个C++ STD::在NSCONTURE子类中映射),那就是<强>适配器<强>模式。而不是一个c的实例?是的,对不起,我现在纠正了,谢谢:)我猜你是指一个例子;而不是一个c的实例?是的,很抱歉,我现在纠正了,谢谢:)对潜在模式和构图的很好的解释!很好地解释了潜在的模式和组成!