码迷,mamicode.com
首页 > 其他好文 > 详细

关于pytho面向过程开发人员三步转oo的补充,再加一步,四步走战略

时间:2018-07-04 22:54:09      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:ret   代码编辑   关键字   方法   结果   class   改变   空间   这一   

1、之前写的这个很久了 

 

里面提到的是三步走:

模块和类的转换规则是:

1、模块级降为类

2、全局变量改成实例属性,全局的不会被改变的变量类似于那种const的,可以写成类属性(减少点内存存储可以)。

3、然后把函数改成方法。方法是类里面的,函数是模块里面的。

 

因为里面举得一个例子是一个人,但人的属性写的是模块级全局变量,如果是这种写法,三步走就可以oo了。

 

2、但现在的情况是很多人不喜欢写全局变量(不写全局是为了尽可能模拟多实例,不可能用全局变量,因为全局变量只有一份而且运行结果是从入口函数传参得到结果,不希望修改顶层代码,所以才会出现尽量少写全局变量这种现象了),喜欢一步一步一环套一环的传参和return来处理业务,那么这种写法,如果按照上面的三步走战略,就不行了,因为只执行这三部,这样做是没有个卵用的,只是有了class外壳,但丝毫没有封装的概念。我最近就看过一些这样的类,写的貌合神离,貌像面向对象,但神是面向过程,这种类当然是十分的没必要,因为没有体现出面向对象带来的任何优点,也没任何意义了,执行这三步价格class关键字,只不过是脱了裤子放屁。

如果是这种思维来写的面向过程,那么三步走还不行,需要重新构思整个流程,即在代码里面少return少传参,多用全局变量,按照这个思路在脑袋里面过一遍,这一步是发生在脑袋里面的,不是让你真在代码写全局变量,是为了先构思出来有哪些全局变量,然后再接着上面的三步走战略降级命名空间,就是oo了。

所以这个前置的发生在脑袋里面的过程是不能少的,这一步是整个精神支柱 ,后面三步是修改代码面貌。

 

那么总结一下就是四步走了:

0、脑瓜里面构思,你的面向过程的return 传参,有哪些尽可能多的是可以弄成全局变量的,这时候不用考虑全局变量是不是需要多份的,因为后面在三步走降级的时候,这个玩意自动变成了实例属性,而每个类的实例的的属性都是互不干扰的,除非了你刻意写了单例模式。

1、模块级降为类

2、全局变量改成实例属性,全局的不会被改变的变量类似于那种const的,可以写成类属性(减少点内存存储可以)。

3、然后把函数改成方法。方法是类里面的,函数是模块里面的。

第0步发生在脑袋里面,后面三步发生在代码编辑器里面。

 

面向对象本质是方法和属性的封装,如果把属性绑定全部改为外界传参给方法,那写这样的类,基本上是没个鸟用废了类的80%功能,只不过是加个class外壳罢了,。

关于pytho面向过程开发人员三步转oo的补充,再加一步,四步走战略

标签:ret   代码编辑   关键字   方法   结果   class   改变   空间   这一   

原文地址:https://www.cnblogs.com/ydf0509/p/9265536.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!