函数即对象(FunctionAsObject)- Martin Fowler博客

/**
 * 献给我最尊敬的偶像Martin Fowler
 * 原文出处:https://martinfowler.com/bliki/FunctionAsObject.html
 * @author dogstar.huang <chanzonghuang@gmail.com> 2017-03-13
 */

本翻译已征得Martin Fowler同意,并链接在博客原文下方。

函数即对象

在编程中,对象的基本概念是绑定数据和行为。这为编写一系列相关函数时提供了一个公共的数据上下文。它还提供了一个用于操纵数据的接口,让对象可以控制对此数据的访问,使得支持衍生数据和预防无效的数据修改变得容易。很多语言提供了明确的语法来定义类,一如作为对象的定义。但如果你有一个支持一等函数(first-class functions)和闭包的语言,你可以通过函数即对象模式(最初由Eugene Wallingford提出)使用这些构造器创建对象。

这是一个简化的person对象例子,在JavaScript中通过使用函数即对象风格来完成。[1]

function createP

继续阅读»»»

Python设计模式:为了圆滑时尚的代码

/**
 * 谨献给可爱的小黑
 *
 * 原文出处:https://www.toptal.com/python/python-design-patterns
 * @author dogstar.huang <chanzonghuang@gmail.com> 2016-04-02
 */

再次说明:Python是一门有动态类型和动态绑定的高级编程语言。我会把它描述为一门强大的高级动态语言。很多 开发人员深爱Python是因为它清晰的语法,良好的结构模块和包,以及它巨大的灵活性和众多的现代特性。

在Python,不会有任何东西强迫你去写类或者实例化对象。如果在项目中不需要复杂的结构,你可以只写函数。 甚至乎,你可以针对某些简单和快速的任务编写一个无须任何结构化代码的小脚本。

同时Python是一门100%面向对象的语言。为什么这么说?好吧,简单来说,在Python中的所有东西都是对象。
函数是对象,第一类对象(不管这意味着什么)。函数是对象这一事实很重要,所以请记住这一点。

那么,你可以用Python编写简单的脚本,或者只是打开Python终端并且在


继续阅读»»»