Facade Design Pattern
继承了架构中Facade
的概念吗?我的意思是在建筑中,术语Facade
通常代表任何建筑物的正面或外部。 Facade Design Pattern
在软件架构中是否也有这种用途?如果这是真的,这个概念是否也适用于"Factory Pattern" vs "Factory"
,"Bridge Pattern" vs "Bridge"
,"Proxy Pattern" vs "Proxy"
和其他设计模式?“Facade”设计模式与架构的“Facade”
回答
Facade Pattern
指过滤信息或墙面大实现/复杂的细节。
它可以像窗帘或墙壁一样放置在一些复杂的方法或体系结构上,以方便访问。这就是Facade Pattern
的介绍方式(请参见here的“什么是门面模式”)。您也可以通过Facade
隐藏您的课程的一些方法或功能。
最好的例子之一是Repository
模式。您可能会隐藏所有数据库逻辑(DTO到Business对象),因为您有一天可能会更改数据库(如SQL到MySql或Oracle,SQL到EntityFramework)。它隐藏了一些东西,比如墙壁,同时展示了一些东西,比如窗户。
对于其他列表,它非常适用。
Factory
pattern创建从某个上下文对象不暴露instanciation执行(你的类调用工厂没有建立,工厂一样)Bridge
pattern帮助,而不依赖与实现链接抽象(我想要保存到多个数据库,但我希望一个入口点用于所有不同技术的实现)Proxy
pattern将掩码放在您可能不想创建的对象前面。
所以是的,几乎所有的模式在一定程度上都有真实的生活应用。
一般来说,是的。四人帮模式的工作灵感来自于Christopher Alexander。
克里斯托弗亚历山大是第一个研究建筑和社区模式,并开发了一种“模式语言”来产生它们的建筑师。
我发现架构隐喻在很大程度上与软件设计并行。当然,没有比喻是完美的,所以你当然可以找到差异。 GoF指出,
找到好名字是我们的目录开发 最困难的部分之一。
更一般你问的是,“做设计模式名称描述其内部设计的想法,在现实生活中的实体方面?
概念上的答案是肯定的。在你的例子
- 门面代表一个场景,隐藏了一组内部实体/行为的一个协调器实体执行操作。
- 工厂表示工厂实体为您生产/制造对象的场景。
- 桥表示如何连接两个相似但不同(断开)的实体的情况。
- 适配器表示如何连接两个不同的不同实体的场景。
而且我们也应该注意到它也取决于个人的口味和个人理解。举例解释器模式由GoF引入,其含义是它描绘了一个典型的编程语言解释器(或编译器)。但通常“解释者”一词的意思就像翻译者,所以人们往往会误解这种模式的含义。因为有些人认为它不是那种模式的好名字,有些名字像'表达'会是更好的选择。
因此,我们应该从前面的一点学到的另一件事是,我们不应该直接用我们自己的理解,用什么样的名字暗示,因为它可能与它们的含义有所不同。我们应该先看看他们的真实想法。即他们所建议的编程解决方案是什么。
例如:桥梁模式建议关于桥梁。但在编程方面,它可以达到decoupling the abstraction from ones implementation。
- 1. Facade设计模式的缺点是什么?
- 2. Facade和Gateway设计模式有什么区别?
- 3. “Facade”术语问题
- 4. 在Facade实现中的ConcurrentModificationException
- 5. 测试Facade多功能
- 6. 如何拆分SFSB Facade?
- 7. 为什么使用Facade模式的EJB会话bean
- 8. ORM包是否实现了Facade或Adapter模式?
- 9. 何时何地在java中使用facade和委托模式?
- 10. 为什么在EJB中使用facade模式?
- 11. 用Super创建适当的Python Facade类?
- 12. Java EE中的Facade有什么意义?
- 13. ServiceLayer Facade的外观应该如何?
- 14. Laravel Session Facade的意外行为
- 15. JPA2,JAX-RS:@PersistentContext,如何获得Facade构造函数中的EntityManager?
- 16. 如何覆盖Laravel Facade方法?
- 17. PHP Laravel Facade __callStatic参数列表
- 18. Java EE - 调用Remote Facade时发生InvocationTargetException?
- 19. 模板设计/架构
- 20. 架构设计与指标
- 21. 如何在Lumen Blade模板中获取URL Facade?
- 22. 在Laravel中使用Facade与IoC有什么关系
- 23. 设计模式和架构模式有什么区别?
- 24. 框架设计模式
- 25. 结构设计模式
- 26. Winform设计架构
- 27. CloudKit架构设计
- 28. AWS架构设计
- 29. SQL架构设计
- 30. 寻找模块网页设计架构