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

1、之前写的这个很久了

里面提到的是三步走:

模块和类的转换规则是:

1、模块级降为类

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

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

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

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

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

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

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

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

1、模块级降为类

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

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

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

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

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

时间: 2024-10-27 11:47:49

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

【Tomcat】面向初级 Web 开发人员的 Tomcat

Apache Tomcat 应用服务器不再是高级 Web 系统开发人员的专用领域.在本教程中,Sing Li 将向初级 Web 开发人员展示如何利用他们当前的 Java™ 开发技能,使用 Tomcat 编写服务器端 JSP.servlet 和 Web 服务. 开始之前 关于本教程 本教程向 Java Web 开发人员介绍使用 Tomcat 对 JavaServer Pages (JSP).servlet 和 Web 服务进行编程,Tomcat 是来自 Apache Foundation 的开源应

面向对象与面向过程的本质的区别

一.面向对象与面向过程的区别面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了:面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为. 可以拿生活中的实例来理解面向过程与面向对象,例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1.开始游戏,2.黑子先走,3.绘制画面,4.判断输赢,5.轮到白子,6.绘制画面,7.判断输赢,8.返回步骤2,9.输出最后结果.把上

如何从普通程序员晋升为架构师 面向过程编程OP和面向编程OO

引言 计算机科学是一门应用科学,它的知识体系是典型的倒三角结构,所用的基础知识并不多,只是随着应用领域和方向的不同,产生了很多的分支,所以说编程并不是一件很困难的事情,一个高中生经过特定的训练就可以做得到.但是,会编程和编好程绝对是两码事,同样的程序员,有的人几年之后成为了架构师,有的人却还在不停地coding,只不过ctrl-c.ctrl-v用得更加纯熟了.在中国,编程人员最终的归途无外乎两条:一是转向技术管理,它的终点是CTO:二是继续深入,它的终点是首席架构师,成为CEO的人毕竟是少数.如

C语言学习系列-面向过程和面向对象

一.基本定义 (一).面向过程(procedure oriented programming POP) 面向过程是分析解决问题的步骤,然后用函数把这些步骤一步一步的实现,然后在使用的时候一一调用则可. (二).面向对象(object oriented programming OOP) 面向对象是把构成问题的事务分解成各个对象,而建立对象的目的也不是为了完成一个个步骤,而是为了描述某个事物在解决整个问题的过程中所发生的行为. 二.通俗理解面向过程和面向对象区别 知乎上面经典的答案(一): 面向过程

面向过程与面向对象编程的区别和优缺点

面向过程与面向对象编程的区别 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了: 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为. 可以拿生活中的实例来理解面向过程与面向对象,例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1.开始游戏,2.黑子先走,3.绘制画面,4.判断输赢,5.轮到白子,6.绘制画面,7.判断输赢,8.返回步骤2,9.输出最后结果.

07-09 面向过程与函数式

[TOC] 一 编程范式 ? 很多初学者在了解了一门编程语言的基本语法和使用之后,面对一个'开发需求'时仍然会觉得无从下手.没有思路/套路,本节主题"编程范式"正是为了解决该问题,那到底什么是编程范式呢? 编程范式指的就是编程的套路,打个比方,如果把编程的过程比喻为练习武功,那编程范式指的就是武林中的各种流派,而在编程的世界里常见的流派有:面向过程.函数式.面向对象等,本节我们主要介绍前两者. ? 在正式介绍前,我们需要强调:"功夫的流派没有高低之分,只有习武的人才有高低之分

iOS runtime探究(一): 从runtime开始理解面向对象的类到面向过程的结构体

你要知道的runtime都在这里 转载请注明出处 http://blog.csdn.net/u014205968/article/details/67639205 本文主要讲解runtime相关知识,从原理到实践,由于包含内容过多分为以下五篇文章详细讲解,可自行选择需要了解的方向: 从runtime开始: 理解面向对象的类到面向过程的结构体 从runtime开始: 深入理解OC消息转发机制 从runtime开始: 理解OC的属性property 从runtime开始: 实践Category添加属

重磅!个人开发人员能够开发上线小程序了

最新消息!今天,小程序新增六大新能力:个人开发人员开放.公众号自己定义菜单跳小程序.公众号模版消息可打开相关小程序.模板消息跳小程序 .绑定时可发送模板消息.兼容线下二维码.app分享用小程序打开. 小程序带来能力更新,希望帮助开发人员增强小程序能力,扩大小程序的使用场景. 一.小程序开发门槛减少.面向个人开发人员开放 今天,小程序正式对个人开发人员开放注冊. 有开发能力的个人,能够申请注冊.开发小程序了,我们希望提供一个更广阔的平台,方便个人开发人员便捷地开发一款小程序. 申请个人开发人员的个

Scala学习笔记及与Java不同之处总结-从Java开发人员角度

Scala与Java具有许多相似之处,但又有许多不同.这里主要从一个Java开发人员的角度,总结在使用Scala的过程中所面临的一些思维转变.这里只是总结了部分两种语言在开发过程中的不同,以后会陆续更新一些切换后在开发过程中值得注意的地方.下面列举了部分,但令人印象深刻的Scala语言的不同之处,具体的代码示例及详细阐述见下文. ? Scala中可直接调用Java代码,与Java无缝连接: 语句可以不用";"结束,且推荐不适用";": 变量声明时以var或val开头