架构设计中常见的语义耦合类型的总结

语义耦合是隐性的,不易察觉的耦合类型 ,是导致代码重构、调试、修改复杂度急剧增加的主要原因。

 

1,操作顺序耦合

使用一个对象,需要先调用Init(),之后才能调用DoAnything()。这种顺序耦合,即使在文档中remark也是极为不优雅的做法。

 

2,全局参数传递

模块A修改了某个全局参数g_val,模块B读取该值。模块B必须知道模块A已经对该参数赋值。

 

3,业务封装不够紧密

模块A向模块B传一个参数,模块B根据该参数选择对应的操作。模块A必须知道与业务相关的所有的操作类型。对于模块A,仅传递模块A自身可以理解的语义,或者通俗的概念作为参数,而不是被封装的业务相关的参数。

 

4,超越接口的数据类型约定

模块A向模块B传递一个接口的指针,模块B将其强制转换为派生类的指针。当模块B知道该接口的实际类型时,封装已经被破坏了。非相关模块只能对接口操作,而不应对接口之外的职责进行约定。

 

先写这么多,欢迎补充。

posted @ 2014-10-22 19:42  千岛寒流  阅读(1052)  评论(0编辑  收藏  举报