摘要: 当我们要实现的功能需要现有类的参与,但又不想对现有类做任何修改时,使用这种纯函数式的方法组合出功能是非常适合的。这一思路的一种实现方式是通过继承获得子类,并将行为糅合到新创建的子类上。 阅读全文
posted @ 2018-11-28 14:18 AveryBy 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 类装饰器提供了一个紧凑的、魔法般的语法,该语法和类的创建紧密关联。它的引入确实需要你学习新的语法,但不同的语法实现不同的事情让代码理解起来更容易,比如 @foo 表示装饰器,bar(…) 表示函数调用,这不失为成功之举。 阅读全文
posted @ 2018-11-27 17:32 AveryBy 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 一般来说,最好保持同一个问题域下的代码表现尽可能相似,而这有时不可避免地增加基础代码的复杂性。但这一点更多的是一种指导思想,而非需要恪守的万能教条。出于此,对象 mixin 模式和函数式 mixin 在 JavaScript 中都有各自的一席之地。 阅读全文
posted @ 2018-11-27 14:55 AveryBy 阅读(449) 评论(0) 推荐(0) 编辑
摘要: 首先,有时候无法将功能完美分解成树形结构。书的作者有时是公司,而不是人。并且古籍书店也可能像藏书家一样收集图书。在实际项目中类的定义可以变得非常庞杂。即使某个 mixin 没有在多个类中使用,将一个大类分解成多个 mixin 也有助于实现“单一责任原则”。每个 mixin 可以只做一件事。这使得代码变得容易理解和测试。 阅读全文
posted @ 2018-11-26 17:04 AveryBy 阅读(208) 评论(0) 推荐(0) 编辑