领域类是什么鬼?领域不是field吗?

  Oxford Dict中的解释是,domain源自于法语domeine,原意是estate, belonging to a lord,后来引进英语主要指an area of territory。domain在计算机方向有两个解释:

  • 来自于数学术语,the set of possible values of the independent variable or variables of a function.
  • 因特网,a distinct subset of the Internet with addresses sharing a common suffix.

  因特网这个比较好理解,网站也叫site,所以网域是借助了an area of territory的含义。而编程中的domain主要来自数学上的含义,在数据库设计中,是指一个独立的数据类型能够包含的全部取值范围。我们知道OOP中都是值传递,Java Bean就是对值的封装,它的所有取值范围就被抽象成类,和数据库中的表对应,表的一条记录又对应一个对象,那一张表所有可能的记录就是它的domain,也就是说,不同的类就是不同的domain(所有取值的集合),因此Java Bean,Entity,POJO,domain model说的其实是一个东西,而且从这个意义上也很容易将对象理解成map。

  顺便提一下哲学上的解释也很有意思。中文里"范围"被翻译为scope,range或limits,而domain被翻译为"范畴",与category同义,是指哲学中对所有存在最广义的分类,是分类的最高层次的统称,是人的思维对客观事物的普遍本质的概括。所以你看,domain正好契合了OOP中一切皆是对象的思想。

 posted on 2020-05-04 20:21  银色甲壳虫  阅读(2632)  评论(0编辑  收藏  举报