标签: cohesion

处理大类

在过去的几个月里,我最近开始用 Java 编码。我有一个 Matrix 类,它因为有很多方法而变得过于臃肿。我还有一个 SquareMatrix 类,它扩展了 Matrix,并减少了一些膨胀。

我发现 Matrix 类中的许多方法通常与矩阵相关。它具有所有基础知识,如 addMatrix(Matrix)、multiplyMatrix(Matrix)、multiplyMatrix(float),以及更复杂的方法,如 getGaussian(Matrix) 或 getLUDecomposition(Matrix)。

减少 Matrix 类中的行数有哪些选择?一个类变得非常大是正常的吗?我不这么认为......这是我应该尽早考虑并且重构很困难的事情吗?或者有简单的解决方案吗?

谢谢!


编辑:在阅读了一些回复后,我正在考虑执行以下操作:

实用程序类Matrix 包含矩阵的所有常见/基本方法

委托类(Helper/sub):

*辅助类* getGaussian(..), getLUFactorization(..), ...

子类 (扩展矩阵)SquareMatrix、LowerTriMatrix、UpperTriMatrix、...

委托似乎类似于在 C++ 中定义多个带有头文件的 .cpp 文件。仍然欢迎更多提示。


Edit2:另外,我更喜欢通过正确设计来重构,而不是快速修复。我希望它有助于未来的项目,而不仅仅是这个项目。

java class matrix cohesion

5
推荐指数
1
解决办法
1217
查看次数

"连贯"的良好定义

我试图告诉别人他的代码不是"连贯的",因为它有多种用途.我认为我不能很好地解释它,所以我正在寻找一个很好的参考和/或定义.

cohesion

4
推荐指数
2
解决办法
7459
查看次数

将对象保存到DataBase中的对象是否会破坏类的Cohesion?

就面向对象设计而言,您是否认为提供将数据库保存到数据库中的功能会破坏类的COHESION?

想像:

Product p = new Product() 
          {
           Name = "Joy Rider", 
           Price = 100, 
           Currency = "USD"
          };
Run Code Online (Sandbox Code Playgroud)

您是否认为将此产品保存到DataBase最好以这种方式完成:

 p.Save();
Run Code Online (Sandbox Code Playgroud)

或者以某种方式:

 ProductServices.SaveProduct(p);
Run Code Online (Sandbox Code Playgroud)

你怎么看?

.net c# oop service cohesion

4
推荐指数
2
解决办法
587
查看次数

内聚性和耦合性——如何确定阈值?

我现在正在进一步介绍 java 类,这就是该类的简要定义:

内聚:以高内聚为目标,在本例中,内聚意味着单个模块紧密关注其任务。

耦合:以低耦合为目标,在这种情况下,耦合意味着两个或多个模块交织的程度。

如何确定内聚性和耦合性的水平?

例如,我的一些方法调用同一类中的其他方法。这意味着调用其他方法的方法依赖于其他方法,以便“调用”方法完成其代码块。这是否意味着我对同一个类的方法具有低内聚和高耦合?或者这些概念更多的是指不同的类和不同的包?

java coupling cohesion

4
推荐指数
1
解决办法
2351
查看次数

软件设计体系结构中的程序内聚和顺序内聚有什么区别?

程序内聚性表示模块的各个部分被分组,因为它们始终遵循一定的执行顺序; 而顺序内聚性表示模块的各个部分被分组,这是因为一个零件的输出是 流水线等另一零件的输入。这些定义是模棱两可的。请解释。

procedural cohesion sequential

1
推荐指数
1
解决办法
2614
查看次数

标签 统计

cohesion ×5

java ×2

.net ×1

c# ×1

class ×1

coupling ×1

matrix ×1

oop ×1

procedural ×1

sequential ×1

service ×1