JavaScript面向对象的设计原则(二)

这一期,我们来看下JavaScript面向对象设计中的核心--对象.
面向对象的本质是将现实世界抽象层到计算机的世界,Class所体现的正是人类在观察世界中所经常进行的一项工作,分类.

我们可能会经常整理屋子,然后将整理后的东西分门别类的放好.我们根据什么分类?电器,食物,书籍,这些属性是我们分类的依据,这些不同类别的用品都有什么功能?食物可以吃,可以加工,书籍可以看,电器可以使用.抽象到计算机的世界,于是就有了class,property,method,类,属性,方法.

所以我们日常中所进行的活动,很多都是分类的活动,你在工作中生活中所做的分类活动就是一种面向对象的设计行为,相对于类的概念,对象更具体,粒度更小,我们可以将具有一类共性的对象称为类.

当一个对象很具体,我们就称其为一个实例.

示例

var personInstance = {
name:'jacky',
age:60,
six:'meal'
}

当一个对象很抽象,我们可以称其为类.

示例

var PersonClass = {
name:'',
age:'',
six:''
}

这里我们没有使用任何JavaScript模拟类的技术,也没有用上ES6的class,但实际上这就是一个实例,一个类,从中我们可以看到,面向对象的设计其实是语言无关的,只要你能够表达出其中的含义,如何实现,并不是重点.


JavaScript类设计

抛开各种模拟类的语法糖,让我们直面本质来看看如何设计一个JavaScript类.

1.合理封装

封装的目的是找出代码中的变化点,将其包裹起来,通过统一的具有语义的API接口来输出结果,隐藏其中的实现和具体算法.

示例

function MenuTree () {
this.dataSource = [],
this.template = '

posted @ 2016-02-05 18:10  柳郎中  阅读(1142)  评论(2)    收藏  举报