Str*_*hms 5 oop clean-architecture
我最近读完了 Unckle Bob 的《Clean Architecture》一书。他在那里写道
三个范式。三个约束。结构化编程对直接控制转移施加了纪律。面向对象编程对间接控制转移施加了纪律。函数式编程对分配施加纪律。这些范式中的每一个都带走了一些东西。他们都没有添加任何新功能。每一次都增加了纪律并降低了能力。
- 间接控制权转移是什么意思?
指向函数的指针。
- OOP中是如何限制的?
多态性。
更完整的解释可以在第 42 页的底部找到。
底线是多态性是函数指针的应用。自 20 世纪 40 年代末以来,程序员一直在使用函数指针来实现多态行为。
显式使用函数指针来创建多态行为的问题是,函数指针是危险的。这种使用是由一组手动约定驱动的。你必须记住遵守约定...
面向对象语言消除了这些约定,因此也消除了这些危险。使用面向对象语言使多态性变得微不足道。这一事实提供了巨大的力量……在此基础上,我们可以得出结论,面向对象对间接控制转移施加了纪律。
OO 中强加的规则是,指向函数的指针仅通过多态性进行访问,并且从不显式使用。