这是一个纯粹的设计/良好实践问题,我无法提供实际的代码示例,只能提供伪代码。
我正在使用专有的JavaScript框架,它给了我一个类的概念(类似于TypeScript),并允许我动态创建“类成员/字段”。使用伪代码的示例:
Class Human {
firstName;
secondName;
HumanConstructor() {
}
void method1 {
this.title = "Mr"; // dynamically created new Class field
}
void method2 {
this.addressedByName = this.title + this.firstName;
}
}
问题1:在方法中引入新的“类字段”是一种好/坏设计吗?
问题2:一个方法(方法2)的好/坏设计是否依赖于其他方法(method1)首先是caleld这一事实。
上述两个主题有哪些优点和缺点?
答案 0 :(得分:3)
在方法中引入新的“类字段”是一种好/坏设计吗?
这通常被认为是糟糕的设计。有很多原因。最受欢迎的是
一个方法(method2)的好/坏设计是否依赖于首先调用其他方法(method1)的事实。
没有。这是可变面向对象编程的本质。指导是用你的直觉。
答案 1 :(得分:0)
如果首先调用第二个方法,那么首先你会得到一个NPE因为标题没有被初始化。根据我自己的经验,如果你知道将有一个字段用于在类中声明它,并在构造函数中定义它,那就更好了。