【问题标题】:Can Class Interface be used for Separation of Concerns instead of AOP?类接口可以用于关注点分离而不是 AOP 吗?
【发布时间】:2011-04-21 22:17:52
【问题描述】:

我在这里How to organize class interfaces hierarchy?问了一个关于Interface的问题,有人回答了Separation of Concern。

这种与类接口的关注点分离和 AOP 之间是否存在联系?

【问题讨论】:

    标签: java .net aop


    【解决方案1】:

    AOP 只是一个不同的编程范式,它下面有一个支柱。

    类接口是更具体的东西,当您想要定义不同类之间通用的属性时应该使用它。

    所提到的关注点分离可能与那些不同的属性有关,当它们被发现并且不同时,应该允许创建新接口,从而允许其他类实现它们,并使它们有可能有一些共同点将它们联系起来,并且是可见和明确的。

    AOP 不应该用于那个目的,因为它涉及到它自己的范式,而且它是你已经可以通过接口实现的任务。 AOP 在另一个层面上改变了事物,允许您通过定义要通知的切入点来改变整个程序的行为。

    【讨论】:

      【解决方案2】:

      使用接口,您可以将类似的方法组合在一起,然后在实现中封装细节。这通常会使您的应用程序更具可移植性。例如,如果您有针对不同数据库供应商的多个 DAO 实现,您可以创建一个接口并为每个数据库实现它。您可以在保持接口结构不变的情况下更换实现。

      使用 AOP,您可以解耦应用程序中的横切关注点。例如,如果您的所有 DAO 方法都需要事务管理,那么这是一个常见问题,您可以在那里使用 AOP 模式。

      关注点分离是一个通用术语,也是一种常见的编程原则。你想尽可能多地解耦。同时使用接口和 AOP,可以促进解耦。

      【讨论】:

        猜你喜欢
        • 2011-08-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-07
        • 1970-01-01
        • 2016-03-28
        • 1970-01-01
        相关资源
        最近更新 更多