我看后感觉类就是一个自定义函数包。例如自己定义一个函数包的名称叫 A,包里面包含了好几个方法(也就是函数) sin,cos,子类 B 里面包含了方法(函数) tan 。tan 的定义使用了类 A 中的方法 sin 和 cos 。tan=A.sin/A.cos
如果这就是类。那么我们直接定义几个全局变量 sin,cos,tan 。以后直接在程序中调用不就可以了?何必非要打包到 A 和 B 里面。以后再通过 A.sin A.cos 的方式调用呢?没有本质区别啊。看起来只是形式上不同。
不过反过来一想,我上面的理解肯定有有问题的。如果类仅仅是个自定义函数包。那么就不存在某语言是否支持类或某语言不支持类的问题了。喜欢使用类的程序员。直接自己定义一个全局变量叫做 A 。然后把 A 接收的参数传给内部的函数 sin 和 cos,不一样可以实现“类”的调用??哪有这种事。如果时这样 python 哪还有必要规定专门用 class 来定义类,用 def 来定义一个方法? 所以究竟什么是类。使用类相对于使用全局变量有什么区别?有什么优势?还请老师点播。
- 关于 继承 inheritance Neither is inheritance: as a code reuse tool it is widely recognized as useless and it is slowly being discarded. Just don’t use it and no harm will come. -
然后讲 IoC,用 IoC 来接管依赖关系并生成我需要的类的实例
这样一种叙述方式可以避免 OOP 里关于父类子类这一叙述里带来的思维弯路。它是为人脑设计的障碍
clear contracts; using interfaces will force you to think in term of communication between objects;
thinking “communication first” will give your brain free resources by splitting its job in two steps: design time and implementation time; our brain doesn’t like to work on two different things at the same time, especially switching continuously between the two;
@BoarBoar 你的回复,让我感觉。类,或者说面向对象。其实就是给自己写的函数间隔目录,分个类。这样以后再引用的时候,只要一看到被引用的方法是 A.b.sin 。就知道这个函数是起什么作用的了。因为你看到 A 就想到 A 这一类主要是处理什么工作的。在看到 b 更进一步明确了。类似于中粮集团大豆公司仓库修缮部刘主任。这样一看名字就知道他是做什么工作的了?是这意思么? 那我再命名自己写的函数时按照这一思路去给全局变量函数分类。是不是就实现了面向对象的编程思想?