x
是否从架构继承了Facade Design Pattern
的概念?我的意思是在建筑学中,术语Facade
通常代表任何建筑物的正面或外部。 Facade
在软件架构中是否也有这种用途?如果是这样,该概念是否也适用于Facade Design Pattern
,"Factory Pattern" vs "Factory"
,"Bridge Pattern" vs "Bridge"
和其他设计模式?
答案 0 :(得分:1)
总的来说,是的。 “四人帮”模式的工作受到Christopher Alexander的启发。
克里斯托弗亚历山大是建筑师,他首先研究建筑和社区的模式,并开发了一种模式语言"生成它们。
我发现架构隐喻在很大程度上与软件设计并行。当然,没有比喻是完美的,所以你当然也可以找到差异。 GoF指出,
寻找好名字一直是发展中最困难的部分之一 我们的目录。
答案 1 :(得分:0)
Facade Pattern
指的是过滤信息或墙壁大型实施/复杂细节。
它可以像一个窗帘或墙壁一样复杂的方法或架构,以便于访问。这就是Facade Pattern
的呈现方式(请参阅答案here了解“外观模式是什么”)。您也可以通过Facade
向您的班级隐藏一些方法或功能。
最好的例子之一是Repository
模式。您可能会隐藏某些墙后面的所有数据库逻辑(DTO到Business对象),因为有一天您可能会更改数据库(例如SQL到MySql或Oracle,SQL到EntityFramework)。它隐藏着像墙一样的东西,同时展示了一些东西,比如窗户。
对于列表的其余部分,它非常适用。
Factory
pattern从某个上下文创建对象而不暴露实例(您的类调用工厂不会创建,工厂会这样做)Bridge
pattern帮助将抽象与没有依赖的实现联系起来(我想保存到多个数据库,但我想要一个入口点来实现不同技术的所有实现)Proxy
pattern在您可能不想立即创建的对象前放置一个遮罩。所以是的,几乎所有的模式在某种程度上都有现实生活。
答案 2 :(得分:0)
更一般地说,你要问的是,"设计模式名称是否用现实生活实体来描述其内部设计的想法?
从概念上讲,答案是肯定的。在你的例子中
我们还应该注意到它还取决于个人风格和个人理解。例如,GoF引入了 Interpreter 模式,其含义是描述了典型的编程语言解释器(或编译器)。但一般来说,“口译员”这个术语是指'意味着像翻译这样的东西,所以人们常常会误解这种模式的含义。因为有些人认为它不是这个模式的好名字,而且有些名称如“表达式”等。将是一个更好的选择。
因此,我们应该从前一点学到的另一件事是,我们不应该直接使用我们自己对模式名称所暗示的理解,因为它可能与它们的含义不同。我们应该首先研究他们的真实想法。即他们建议的编程解决方案是什么。
Ex:Bridge模式暗示了一座桥梁。但就编程而言,它可以通过decoupling the abstraction from ones implementation实现。