最近我看到很多关于如何构建松耦合应用程序的博客文章.在创建松散耦合的应用程序时,您最常使用哪些模式?依赖注入?控制倒置?
模型 - 视图 - 控制器.
除此之外:阻止我编写耦合应用程序的东西不仅仅是模式:
命名.如果我不能轻易想到我班级的名字,它要么什么都不做,要么做太多事情.
可测试性.如果我不能轻易地模拟我的班级依赖,那就是耦合设计.
我发现自己经常使用Command模式.这是一种模式,只是在项目之后继续提供项目.
春天的依赖注入是我的最爱.另外,对于maven来说,通常这样做是非常巧妙地隐藏API模块背后的所有实现.因此,如果您的代码有三个模块,"application-core","externalsystems-api"和"externalsystems",您可以使"application-core"仅依赖于externalsystems-api.实际实现及其所有依赖关系对于应用程序核心模块完全不可见.这实际上强化了关注点的更难分离,并使松散耦合变得更容易.
巧妙的是,加载这些maven设置的IDE会强制执行这些可见性约束.因此,您无法在应用程序核心中引用SQL,AXIS,JAXB等