由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 面向对象的本质是分封制,函数式是官僚制(以go为例)
进入Programming版参与讨论
1 (共1页)
m*****n
发帖数: 3575
1
golang去打碎面向对象编程,即类和实例,做得很非常彻底。
如果是类型编程,你可以用一个类型模板,创立多个实例,而各实例的数据可以调用类
型的方法进行改变。则从程序的定义来讲,各实例自己已经成为程序了,程序即数据+
函数(改数据)。那么各实例的交互,就相当于各子程序的交互。
这样比较容易形成黑箱,也比较适合分清责任。我尚不知道运行上有什么优势,但是似
乎传统线程都必须做成一个对象。golang相应的也取消了传统线程。
从系统安全性角度来讲,似乎是分封制更冗余一些,如果各个实例自己拥有数据和全部
函数,那么一个实例失败不会波及别的实例。
相应的,golang坚决把实例的函数从数据中剥夺出去。处理实例的专有函数可以改实例
的状态数据,然而不属于实例——这就相当于技术官僚。而各实例只留下数据,即领土
,却不能自我封闭成独立王国,必须等技术管僚或曰钦差大臣来处理事务。
从编译的角度讲,似乎golang很难把类型独立拆成动态库?
c*******v
发帖数: 2599
2
https://www.toptal.com/go/golang-oop-tutorial
golang可以凑合弄一个OO。

【在 m*****n 的大作中提到】
: golang去打碎面向对象编程,即类和实例,做得很非常彻底。
: 如果是类型编程,你可以用一个类型模板,创立多个实例,而各实例的数据可以调用类
: 型的方法进行改变。则从程序的定义来讲,各实例自己已经成为程序了,程序即数据+
: 函数(改数据)。那么各实例的交互,就相当于各子程序的交互。
: 这样比较容易形成黑箱,也比较适合分清责任。我尚不知道运行上有什么优势,但是似
: 乎传统线程都必须做成一个对象。golang相应的也取消了传统线程。
: 从系统安全性角度来讲,似乎是分封制更冗余一些,如果各个实例自己拥有数据和全部
: 函数,那么一个实例失败不会波及别的实例。
: 相应的,golang坚决把实例的函数从数据中剥夺出去。处理实例的专有函数可以改实例
: 的状态数据,然而不属于实例——这就相当于技术官僚。而各实例只留下数据,即领土

m*****n
发帖数: 3575
3
谢谢,我有空去看看。

【在 c*******v 的大作中提到】
: https://www.toptal.com/go/golang-oop-tutorial
: golang可以凑合弄一个OO。

1 (共1页)
进入Programming版参与讨论