设计模式 – 在依赖关系中查找高级别和低级别模块,以应用依赖性倒置Principe

Dependency Inversion Principle说:

>高级模块不应该依赖于低级模块.都
应该取决于抽象.
>抽象不应该依赖于细节.细节应该取决于
在抽象.

我怎样才能在我的应用程序中找到高级和低级模块,对它们有什么清晰的定义吗?

解决方法

这通常是我引用它们的方式:

高级模块 – >此模块代表更多业务方面而非技术方面.它可以被称为抽象而不是实现,通常通过接口实现.

一些例子可能是:Registeraccount,PostAnswer,PostQuestion,AddComment,InsertComment.

由于低级模块代表更多的技术方面而不是业务方面.比如说我们采用InsertComment HLM. LLM应该是:

>打开数据库连接
>执行insert语句
>关闭数据库连接

高级模块可以是另一个上下文中的低级模块.再举一个例子,AddComment的LLM应该是:

>验证评论(例如15 char min) – >这将是另一个HLM
>将注释插入数据库 – >这将是另一个HLM(InsertComment)
>向相关用户添加通知 – >这将是另一个HLM

这同样适用于其他HLM.

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...