可以初始化 Main class 中的所有 classes 吗?
Is it ok to initialize all classes inside the Main class?
最近我开始着手我的第一个更大的项目,我注意到更多 类 开始堆积起来
我以前从来没有超过 3 到 4 类,我想知道是否有某种缺点来初始化所有 类 并为 Main 中那些 类 的每个实例创建 getter一.
DatabaseClass db;
Commands cmds;
Configuration configuration;
public Configuration getConfiguration() { return configuration; }
public Commands getCommandsClass() { return cmds; }
public DatabaseClass getDatabaseClass() { return db; }
//Inside of some sort of method
db = new DatabaseClass(this);
cmds = new Commands(this);
events = new Configuration(this);
然后我在某种方法中创建了新对象。
这是一种错误的方法吗?
有没有更好的方法来处理这个问题?
提前致谢!
尝试遵循层次结构,以职责为指导。
主要class将负责初始化应用程序的高级对象,但您应该让每个对象都具有初始化和操作知识的class .
这是一个很深的话题,但绝对是一项可行的技能。
寻找 GRASP 模式作为指南(GRASP 代表一般责任分配软件 Principles/Patterns),上面有一个很好的维基百科条目。
你正在做的是最基本的对象声明方式,这肯定会导致将来出现问题。一个问题是,它无法测试。
问:初始化 Main class 中的所有 class 是否可以?
答:简短的答案是 "NO"。
那我们在哪里初始化它们呢?
这取决于您的项目要求和您应用的设计模式类型。
最近我开始着手我的第一个更大的项目,我注意到更多 类 开始堆积起来 我以前从来没有超过 3 到 4 类,我想知道是否有某种缺点来初始化所有 类 并为 Main 中那些 类 的每个实例创建 getter一.
DatabaseClass db;
Commands cmds;
Configuration configuration;
public Configuration getConfiguration() { return configuration; }
public Commands getCommandsClass() { return cmds; }
public DatabaseClass getDatabaseClass() { return db; }
//Inside of some sort of method
db = new DatabaseClass(this);
cmds = new Commands(this);
events = new Configuration(this);
然后我在某种方法中创建了新对象。 这是一种错误的方法吗? 有没有更好的方法来处理这个问题? 提前致谢!
尝试遵循层次结构,以职责为指导。
主要class将负责初始化应用程序的高级对象,但您应该让每个对象都具有初始化和操作知识的class .
这是一个很深的话题,但绝对是一项可行的技能。 寻找 GRASP 模式作为指南(GRASP 代表一般责任分配软件 Principles/Patterns),上面有一个很好的维基百科条目。
你正在做的是最基本的对象声明方式,这肯定会导致将来出现问题。一个问题是,它无法测试。
问:初始化 Main class 中的所有 class 是否可以?
答:简短的答案是 "NO"。
那我们在哪里初始化它们呢?
这取决于您的项目要求和您应用的设计模式类型。