1

这是一个纯粹的设计/良好实践问题,我无法提供实际的代码示例,只能提供伪代码。

我正在使用一个专有的 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:一种方法(method2)是否取决于首先调用其他方法(method1)这一事实的好/坏设计。

以上两个主题的优缺点是什么?

4

2 回答 2

3

在方法中引入新的“类字段”是好还是坏的设计?

它通常被认为是糟糕的设计。有很多原因。最受欢迎的存在

  • 缺乏直接的代码可理解性
  • 性能问题。由于每次执行此操作时,js 运行时(v8 等)都需要创建一个新的内部类来表示模型。

一个方法(method2)取决于首先调用其他方法(method1)的事实是好还是坏的设计。

不,这是可变的面向对象编程的本质。指导是使用你的直觉。

于 2013-09-28T15:40:47.157 回答
0

它的主要缺点是,如果首先调用第二种方法,您将获得 NPE,因为 title 未初始化。根据我自己的经验,如果您知道将有一个字段用于在类中声明它,并在构造函数中定义它,那就更好了。

于 2013-09-28T12:25:36.920 回答