【发布时间】:2014-01-19 16:55:29
【问题描述】:
我最近看到了一个带有 Facade 模式的 EJB 代码,它提供了一些在表示层 (JSF) 中使用的方法。但是在业务逻辑的某些部分,Facade 的方法被调用并被使用。
这对我来说有点奇怪,因为我认为 Facade 应该服务于外部世界而不是内部功能。我是对的还是我偏执了?
这是一个粗略的(愚蠢)图表来说明情况:
【问题讨论】:
-
我认为你是对的。如果该函数应该从业务逻辑中使用,那么它应该只是将其委托给其他实体。
-
在 GoF 术语中,内部类对 Facade 一无所知。如果内部类使用 Facade,则它成为 Mediator。
-
@nikita,谢谢。那是一个很好的。
-
@nikita 不正确 - 外观定义为“为子系统中的一组接口提供统一接口”。在原始的 GoF 意义上。它对内部或外部没有限制,外观在实现方面与中介完全不同。
-
@ErmiyaEskandary 没有。证明 - books.google.ru/books/…。经典书籍 - “可重用面向对象软件的设计模式元素”出版日期 1994 (google.ru/books/edition/Design_Patterns/…)。同样在调解员-books.google.ru/books/…
标签: java design-patterns facade