Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 将上帝类分解为单个负责类_Oop_Kotlin_Design Patterns - Fatal编程技术网

Oop 将上帝类分解为单个负责类

Oop 将上帝类分解为单个负责类,oop,kotlin,design-patterns,Oop,Kotlin,Design Patterns,问题: 我在我的项目中有一个GOD类,它由40到50个属于不同服务的函数组成 我想要实现的目标: 我想将唯一的函数移动到专用的子类,将公共函数移动到父类。因此,属于特定功能的所有函数都属于专用类。现在很多类中都注入了GOD类 有人能给我推荐一种设计模式吗?我不必单独注入所有这些子类,而是一个工厂,它将提供这些子类的实例,并提供对父类中常见函数的访问。可能吗 class GodClass { fun common(){} fun a(){} fun b(){} fu

问题:

我在我的项目中有一个GOD类,它由40到50个属于不同服务的函数组成

我想要实现的目标:

我想将唯一的函数移动到专用的子类,将公共函数移动到父类。因此,属于特定功能的所有函数都属于专用类。现在很多类中都注入了GOD类

有人能给我推荐一种设计模式吗?我不必单独注入所有这些
子类,而是一个工厂,它将提供这些子类的实例,并提供对父类中常见函数的访问。可能吗

class GodClass {
    fun common(){}
    fun a(){}
    fun b(){}
    fun c(){}
    fun d(){}
}
abstract class ParentClass {
   fun common(){}
}
class SubClass1: ParentClass {
    fun a(){}
    fun d(){}
}
class SubClass2: ParentClass {
    fun b(){}
    fun c(){}
}

我想,
GodClass
已经是你要找的工厂了,或者是一个
调解人
@EpicPandaForce你能解释一下GodClass是如何充当
工厂的吗?它可能不是工厂,但它肯定是一个调解人,正如我上面提到的。如果这个例子不是抽象的,那么建议更好的设计会很有帮助,但是你会给出一个与现实生活相关的例子。上帝类基本上是一个分析类。我只是想把GOD类分解成不同的迷你类,为特定的功能提供专门的分析功能。项目中的不同功能使用了常见的分析功能。我没有重写任何函数。我只是将所有独特的分析功能复制到它们的专用功能类中,并将通用分析功能移动到一个通用类中。