【问题标题】:Solid Principles in OSGIOSGI 中的坚实原则
【发布时间】:2015-04-22 09:13:48
【问题描述】:

我正在阅读这篇文章:

http://java.dzone.com/articles/solid-principles-modularity

作者指出,使用 SOLID 原则最重要的地方是模块关节,“正是系统内的这些关节需要最大的灵活性和弹性。原因是变化驱动的。改变那个与跨多个模块的变化相比,封装在单个模块中的威胁要小。”。

因为 OSGI 可以用来定义这些关节,所以我决定研究一下 OSGI,看看它是如何使用 SOLID 原则的。

单一职责很简单,一个模块/包/jar 应该只做一件事。依赖倒置原则对我来说似乎很清楚,模块/捆绑包/jar中的实现不应该依赖于另一个实现,而是依赖于抽象。并且模块不应该暴露任何实现细节。 OSGI 通过创建发布或引用服​​务的组件模型来做到这一点。

但是其他原则呢?例如 Liskov 替换原则或接口隔离原则,在 OSGI 中哪里可以找到这些示例?

【问题讨论】:

    标签: java oop osgi solid-principles


    【解决方案1】:

    模块需要符合其发布的接口(Liskov Substitution),这是其唯一的入口点(接口隔离)。

    【讨论】:

    • 没错。 “尊重其发布的接口”有点乱,因为接口本身无法检查合同,只有抽象类可以做到这一点。
    • 让我试着充实你所说的内容。 BundleActivator 有一个发布的接口并使用模板方法 DP。一个或多个步骤可以被子类覆盖以允许不同的行为,同时确保仍然遵循特定的行为。此外,可以使用前置和后置条件验证 BundleActivator 的行为。启动后捆绑应处于启动状态,停止后捆绑应处于停止状态。 BundleActivator 也符合接口隔离,因为实现者不需要实现他们不使用的方法,每个模块都需要启动和停止。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 2012-06-06
    • 1970-01-01
    相关资源
    最近更新 更多