访问修饰符:OOP 的一个无用特性?

2025-06-19

本文探讨了面向对象编程中访问修饰符(public、protected、private)的必要性。作者认为,通过接口和继承的组合,可以实现访问修饰符的功能,而无需引入额外的机制。访问修饰符的出现,可能源于Simula语言设计上的疏忽,导致了功能冗余。作者建议,为了代码简洁和清晰,应尽量避免使用访问修饰符,并提倡使用组合而不是继承。

阅读更多

继承:一个性能黑客的意外产物

2025-05-08

Simula语言发明继承并非为了代码复用或扩展性,而是为了解决其简单垃圾回收机制和入侵式列表的效率问题。Simula的垃圾回收机制过于简陋,无法处理指针指向栈变量的情况。为了避免程序崩溃,Simula禁止了多种参数传递方式,限制了语言表达能力。同时,为了高效使用入侵式列表,Simula发明了“前缀”(prefixing),也就是继承机制,使得对象可以直接包含列表节点,避免了额外内存分配。因此,继承最初只是一个性能优化手段,而非面向对象编程的基石。

阅读更多
开发 Simula