在方法中动态声明新的“类字段” - 良好实践与否?

时间:2013-09-28 12:21:19

标签: javascript oop typescript

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

我正在使用专有的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这一事实。

上述两个主题有哪些优点和缺点?

2 个答案:

答案 0 :(得分:3)

  

在方法中引入新的“类字段”是一种好/坏设计吗?

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

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

一个方法(method2)的好/坏设计是否依赖于首先调用其他方法(method1)的事实。

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

答案 1 :(得分:0)

如果首先调用第二个方法,那么首先你会得到一个NPE因为标题没有被初始化。根据我自己的经验,如果你知道将有一个字段用于在类中声明它,并在构造函数中定义它,那就更好了。