个人对于面向对象的一些肤浅理解--轻拍
前言---此文只适合我等初级程序员看,牛人请拍,谢谢!
高级语言泛滥的当今,似乎不玩面向对象的程序员就不是高级程序员。每天面向对象,面向对象,估计就差“卖肾”去证明自己会玩面向对象了。但是,为什么要面向对象啊?初衷是什么啊?我们设计的程序真的就尽可能避免面向对象的陷阱了吗?关于面向对象的问题太多太多了,我这样的菜鸟是论述不完,也论述不清的,所以,开个帖子,欢迎水平差不多的菜鸟们来一起探讨研究:干这事是为了钱啊,总比没事撸强,撸只能撸虚,学点儿东西最起码能赚钱给妹子买束花啥的。
不论go,还是java,抑或C#等都声称自己是面向对象的。但是,我认为,我认为哈(我怕无处不在的喷子),面向对象应该从两方面去理解。第一:程序语言的实现。第二:程序的设计。
关于程序语言的实现。我不是学计算机出身的,就像XX好得瑟里的人,都要备注说明下自己是路子—我真的是野路子—所以我的知识可能是错的在此特地声明,欢迎指正错误。好,先来一大半的废话是我的习惯,忍不下去的可以直接关页面了(︶︿︶)。在高级语言设计时,我感觉最大的革命性就是讲课反复使用的代码抽离成了文件,那么这个文件就具有了一些自己的特有的东西。而且,再将一个文件复制到内存运行的同时,就决定了复制出来的文件能进行自己的定制。所以,我觉得面向对象的具体使用意义就在于它简化了一些反复的操作,而哲学上的意义就是对重复的东西进行了概括定义。一个事物,一旦有了定义,那么就说明他是代表一类事物的,所以,类由此而生。那么程序里说明是类啊?不就是一个文件嘛!类是干嘛的?不就是在程序中给一个东西进行概括定义嘛!所以个人以为,面向对象的使用应该遵循-在程序中需要概括定义的一定要变成类,其他的一律是过程方式的写法。那么再设计一个程序的时候,只要把握好哪些东西是重复使用的,就可以快速找到程序基本架构的入口(喷子注意说的词啊,看清楚再喷)。而没必要封装成类的,个人认为真没必要封装成类。为什么?因为类的封装过多的最大问题就是类的调用,相信大家都有个找别人设计的程序,扒了好几层也没找到相关的类文件的时候吧?反正我宁可类的方法多一些,靠提示去找,也不喜欢挨个翻类,尤其是子啊功能相似的类还很多的情况。
中午休息,未完待续!