这几天 在 搞 ILBC, 所以 就 讨论到了 语言 对于 面向对象 的 支持 的 问题,
有关 ILBC, 见 《ILBC 规范》 https://www.cnblogs.com/KSongKing/p/10354824.html ,
有 网友 提到 面向对象 编程 的 弊端, 查了一下, 对 面向对象 的 批评 还 挺多 的,
见 《面向对象的弊端是什么(转)》 https://www.cnblogs.com/resn/p/9004956.html ,
《面向对象编程的弊端是什么?》 https://www.jianshu.com/p/ad228816daea ,
面向对象 的 作用 是 定义 和 创建 数据类型 / 子系统, 这是 系统化 设计 必需 的 。
但是 从 设计方法 上来讲, 设计方法 应该是 灵活多样 、百花齐放 的, 不应该 唯面向对象 。
唯面向对象 会 产生 弊端 。
ILBC 会 支持 简洁 的 面向对象 和 函数式,
简洁 的 面向对象 包括 单继承 、接口 、抽象类 / 抽象方法 / 虚方法,
函数式 就是 闭包 。
多继承 是 混乱 的 根源, 应使用 包含 而不是 多继承 。
在 网友 贴 的 文章 里 看到 java 也支持 interface 的 默认方法 了, 这是 要 呵呵 的 节奏 。
java 的 弊端 另有其 根源, 支持 interface 的 默认方法 并不能 扭转 java 的 弊病 。
interface 的 默认方法 是 遮着一块遮羞布的多继承 。
trait 会 破坏 封装性, 应该 使用 包含 而不是 trait 。