前言
命名、抽象、标识是通用设计结构的主要方面,这些设计结构能被用于构造可复用的面向对象设计。设计模式确定所包含的类和实例、它们的角色、协作方式以及职责分配。
每一种设计模式都重点关注一个特定的对象设计问题或者设计要点,描述何时使用它,在另一些约束条件下是否还能使用,以及使用的效果和利弊。由于我们最终要实现设计,设计模式还是提供了示例,代码来阐明其实现。
虽然设计模式描述的是面向对象设计,但是他们都是基于实际的解决方案。这些设计方案的实现语言是主流面向对象的编程语言。
命名、抽象、标识是通用设计结构的主要方面,这些设计结构能被用于构造可复用的面向对象设计。设计模式确定所包含的类和实例、它们的角色、协作方式以及职责分配。
每一种设计模式都重点关注一个特定的对象设计问题或者设计要点,描述何时使用它,在另一些约束条件下是否还能使用,以及使用的效果和利弊。由于我们最终要实现设计,设计模式还是提供了示例,代码来阐明其实现。
虽然设计模式描述的是面向对象设计,但是他们都是基于实际的解决方案。这些设计方案的实现语言是主流面向对象的编程语言。
fetch
同 XMLHttpRequest
非常类似,都是用来做网络请求。但是同复杂的XMLHttpRequest
的API相比,fetch
使用了Promise
,这让它使用起来更加简洁,从而避免陷入"回调地狱"。
比如,如果我们想要实现这样一个需求:请求一个URL地址,获取响应数据并将数据转换成JSON格式。使用fetch
和XMLHttpRequest
实现的方式是不同的。
很多前端工程师的人说自己精通Javascript语言,问他call()和apply()这两个方法有什么区别,结果往往是一问三不知。
其实区分 apply和call就一句话:
1 | foo.call(this,arg1,arg2,arg3)==foo.apply(thsi,arguments)==this.foo(arg1,arg2,arg3); |
所谓继承,比较熟悉,这里就是指定义一个新的controller/service(不同名),继承原来的controller/service,然后在其基础上重写一些功能。
所谓扩展,这里说的是在不产生新的controller/service的情况下,添加或修改原controller/service的功能。
目前研究的结果就是service可以轻松的实现继承和扩展,而controller貌似只能继承。