Class 关于设计的查询(接口和类)

Class 关于设计的查询(接口和类),class,design-patterns,interface,Class,Design Patterns,Interface,我基本上是在编写一个代码,它读取一个文本文件,将其存储在一个字符串中,对该字符串执行一些操作,并将其显示在一个对话框中,然后在进行某些更改时写入该文件。 现在我为FileRead、FileWrite、StringHandling、LineHandling和Database创建了单独的接口,我有一个实现这些接口的控制器类,我只调用gui中控制器类的实例。。 我想问一下,如果设计是好的,或者我需要一个单独的类实现每一个接口。 < P>我认为对于这样一个小项目是可以接受的,但通常我会认为它是坏的设计有

我基本上是在编写一个代码,它读取一个文本文件,将其存储在一个字符串中,对该字符串执行一些操作,并将其显示在一个对话框中,然后在进行某些更改时写入该文件。 现在我为FileRead、FileWrite、StringHandling、LineHandling和Database创建了单独的接口,我有一个实现这些接口的控制器类,我只调用gui中控制器类的实例。。
我想问一下,如果设计是好的,或者我需要一个单独的类实现每一个接口。

< P>我认为对于这样一个小项目是可以接受的,但通常我会认为它是坏的设计有以下两个原因:

  • 正如您所怀疑的,一个类实现所有这些接口可能是个坏主意。根据接口的不同,您将得到一个god类,它可以处理许多彼此无关的事情。在附件方面,你基本上希望一个类做一件事,或者更好地说,只有一个汇款
  • 您的Controller类实现接口这一事实也让我感到困惑。控制器类(在UI编程的意义上)不应该执行业务逻辑。它应该以UI所需的方式提供方法。然后,这些方法应该调用执行实际业务逻辑的类。他们最多可以在UI和后端之间进行一些“转换”,比如从UI收集所需的数据,并将其转换为业务逻辑方法所需的任何内容。另一种方法是:调用几个业务逻辑方法并放弃它们的结果
正如我所说的,对于这样一个小的工具,它可能被认为是好的,但让您的体系结构保持整洁从来都不是一件坏事;-)

更新

如果遵循这两点,您仍然只需要一个控制器类。它可以引用执行逻辑的不同类