gpt4 book ai didi

design-patterns - 组合与立面模式

转载 作者:行者123 更新时间:2023-12-05 06:32:42 24 4
gpt4 key购买 nike

我找到了一个回复,让我对类作文有了更多的了解。

class Engine
{

}

class Automobile
{

}


class Car extends Automobile // car "is a" automobile //inheritance here
{
Engine engine; // car "has a" engine //composition here

}

但这不是门面模式吗? Facade 不是通过划分子类来让类更简单吗?那么 composition 和 facade 的区别是什么?

或者我理解错了。门面是一种设计模式,但组合更像是一种可遵循的良好实践。可以说使用facade就是在做组合吗?

最佳答案

组合使用相同的 API 将 N 个其他对象组合在一个对象中。因此,您可以在复合对象及其组件上调用相同的方法。

Facade 似乎做了一些非常相似的事情,但我认为它解除了复合对象必须符合相同 API 的限制。 Facade 的全部意义在于包装器和包装器的 API 可以不同。

您展示的示例既不是正式的 Composite 也不是 Facade,但如果您采用 Composite 最开放的定义,那么它可能是一个:“一个对象,它具有其他对象作为其执行操作的成员。”

关于design-patterns - 组合与立面模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51125814/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com