Class 设计-如何使用深层层次结构类生成干净的代码

Class 设计-如何使用深层层次结构类生成干净的代码,class,communication,hierarchy,Class,Communication,Hierarchy,我的班级结构如下: 我不知道把算法类放在哪里。我的建议是: 如果我在Class1中设置它,使其成为一个成员变量,我必须沿着Class2(因此我有set1可用)、Class5和Class6(以便有set2可用)传递算法引用。我认为这是一个令人讨厌的解决方案,因为这个算法不可能是唯一的,而且可能需要更多的算法来处理不同的ClassX依赖关系,所以这个链式机制不是最好的,好吧 将算法设置为单例,并在Class1实例超出范围时将其销毁。从依赖性意识的角度来看,这是比较干净的,但是在我看来,使用单例来

我的班级结构如下:

我不知道把算法类放在哪里。我的建议是:

  • 如果我在Class1中设置它,使其成为一个成员变量,我必须沿着Class2(因此我有set1可用)、Class5和Class6(以便有set2可用)传递算法引用。我认为这是一个令人讨厌的解决方案,因为这个算法不可能是唯一的,而且可能需要更多的算法来处理不同的ClassX依赖关系,所以这个链式机制不是最好的,好吧
  • 将算法设置为单例,并在Class1实例超出范围时将其销毁。从依赖性意识的角度来看,这是比较干净的,但是在我看来,使用单例来实现这一目的是一种非常复杂的代码味道。如果更多的算法将其应用到场景中呢
当然,如果不不断地委托算法引用,另一种机制是可能的,但我不知道怎么做。

你想达到什么目标?要提出解决方案,必须知道问题是什么?只有草案解决方案不起作用。:)我的问题是代码的最佳设计(如何),而不是背后的算法(什么)。Class3和Class6必须以某种方式将一些数据存储到我称之为“算法”的类中。然后,在调用set2之后,算法必须对set1的数据执行一些转换。这是目前实现的,但我相信这不是最好的方法。观察者模式是否适合这里?我真正想问的是用户故事是什么?我要实现一个天气api,当用户给出时间和地点时,它会给出一个天气报告。我知道你的意思:)。但问题不在于实现,而在于设计,它是用户故事感知的。不过,您的天气应用程序示例可能适合这里。您试图实现什么目标?要提出解决方案,必须知道问题是什么?只有草案解决方案不起作用。:)我的问题是代码的最佳设计(如何),而不是背后的算法(什么)。Class3和Class6必须以某种方式将一些数据存储到我称之为“算法”的类中。然后,在调用set2之后,算法必须对set1的数据执行一些转换。这是目前实现的,但我相信这不是最好的方法。观察者模式是否适合这里?我真正想问的是用户故事是什么?我要实现一个天气api,当用户给出时间和地点时,它会给出一个天气报告。我知道你的意思:)。但问题不在于实现,而在于设计,它是用户故事感知的。不过,您的天气应用程序示例可能适合这里。