①、什么是耦合度/耦合性?
模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差( 降低耦合性,可以提高其独立性)。软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分模块的一个准则就是高内聚低耦合。
示例展示:

上图中的Top类与Underly类就属于强耦合关系,即当Underly类中的构造函数变更之后,如:更改为带参数的构造函数,Top类中的代码也需要跟着改变。
②、上图中的UML图与我们哪个设计模式相悖?
依赖倒置原则:高层模块(Top)不应该依赖于低层模块(Underly),他们都应该依赖于抽象(IUnderly)。
那上面的这个UML图要如何优化呢?
我们要让Top类面向接口,Underly类实现接口。这样便做到了他们都依赖于抽象。

③、依赖倒置原则中的:抽象不应该依赖于具体,如何理解?
如果换成另一种解释我们可能会好理解一些:抽象类或接口中最好不要有具体类的出现,即使是返回值类型也最好是抽象类。
如下图中红色字体标识的,CreateWriterInstance( )方法是创建一个Writer具体类实例,在接口中我们最好采用抽象,即让返回值类型是IWriter接口,而非Writer具体类。

本文探讨了软件设计中的耦合度概念,强调高内聚低耦合的重要性。通过UML图示例展示了强耦合关系的问题,并指出这与依赖倒置原则相悖。依赖倒置原则要求高层模块依赖于抽象,而具体实现应依赖于抽象。文章解释了这一原则的含义,指出抽象不应直接依赖具体类。接着,引入依赖注入的概念,作为解决具体类依赖问题的方法,依赖注入包括构造函数注入、属性注入和接口注入。通过这些方式,可以实现依赖关系的解耦,提高代码的灵活性和可维护性。

394

被折叠的 条评论
为什么被折叠?



