【问题标题】:difference between facade and business delegate pattern外观和业务委托模式之间的区别
【发布时间】:2020-03-12 22:50:22
【问题描述】:

外观和业务委托设计模式有什么区别?
不是都用来对客户端隐藏业务逻辑的吗?

【问题讨论】:

    标签: design-patterns jakarta-ee


    【解决方案1】:

    委托位于客户端和实际实现之间,通常对客户端隐藏/过滤/增强实现的某些功能。

    Facade 提供了一个粗略的 API,隐藏了更复杂的逻辑和/或协调,通常捆绑了多个协同工作的实现,通常是为了方便客户端。

    每个来自 java 的示例:

    委托:Collections.unmodifiableList() 返回一个 List,该 List 保留对原始 List 的引用并为所有方法委托给它,但如果调用其 mutator 方法则抛出异常。

    Facade:如果您曾经见过print a java DOM XML document 所需的大量代码,那么您要做的第一件事就是创建一个实用方法来隐藏所有丑陋之处 - 该方法可以被视为外观。

    【讨论】:

    • 谢谢,但请您详细说明外观。
    • 以外观为例,假设您有一个权利服务,它公开外观以检查权利。因此,对于该服务的用户来说,只需调用一个方法并了解权利状态。但是,服务可能在内部从数据库或缓存中查询权利状态并为用户处理角色等,从而为服务用户提供易于使用的外观并隐藏复杂性
    • 那么,除了外观混合多个“主力”类而不是委托暴露一个类(尽管增强了)之外,说它们基本上是平等的是否正确?
    猜你喜欢
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 2015-01-08
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多