面向过程

面向对象与面向过程实例比较区分

一世执手 提交于 2019-12-06 05:57:55
最近有一个比较火的词蛮有意思的, 工具人 其实面向对象就是使用一个个简洁方便的类与方法完成你要做的事情 这些类都已经由 工具人 帮你封装好了不需要你当一个轮子亲力亲为 下面一个简单的程序就可以看出面向对象就是把你做的程序直接拿来用, 有完成同样工作的程序我们自己可以用为什么还要亲力亲为呢, 当然啦,有些需要熟悉底层的还是都得熟悉, /* 面向过程:当需要实现一个功能的时候,每个步骤都要亲力亲为,详细处理每一个细节 面向对象:当需要实现一个功能的时候,不关心具体的步骤,而是是找员工已经具有该功能的人,来帮我做事 */ //当我们使用JDK提供的类时,系统自动帮我们导入进来的 import java.util.Arrays; public class cesi { public static void main (String[] args) { int[] array = {10, 20, 30, 40, 50}; //要求打印格式为[10, 20, 30, 40, 50] //使用面向过程每个细节都要亲力亲为 System.out.print ("["); for (int i = 0; i < array.length; i++) { if (i == array.length - 1) { System.out.println (array[i]+"]"); }else {

js面向过程 分页功能

假如想象 提交于 2019-12-06 04:16:18
1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 8 <title>Document</title> 9 <style> 10 div { 11 width: 800px; 12 height: 40px; 13 border: 1px solid #000; 14 margin: 30px auto; 15 } 16 </style> 17 </head> 18 19 <body> 20 <!-- 页面搞一个div w800 h40 b1实黑 margin 30 auto --> 21 <div></div> 22 <script> 23 let divObj = document.querySelector("div") 24 let pageTag = { 25 first: '首页', 26 prev: '上一页', 27 list: null, 28 next: '下一页', 29 last: '末页', 30 }; 31

设计模式之美学习(四):面向对象相比面向过程有哪些优势?面向过程真的过时了吗?

柔情痞子 提交于 2019-12-06 03:28:31
除了面向对象之外,被大家熟知的编程范式还有另外两种,面向过程编程和函数式编程。面向过程这种编程范式随着面向对象的出现,已经慢慢退出了舞台,而函数式编程目前还没有被广泛接受。 在工作中,很多人搞不清楚面向对象和面向过程的区别,总以为使用面向对象编程语言来做开发,就是在进行面向对象编程了。而实际上,他们只是在用面向对象编程语言,编写面向过程风格的代码而已,并没有发挥面向对象编程的优势。这就相当于手握一把屠龙刀,却只是把它当作一把普通的刀剑来用,相当可惜。 什么是面向过程编程与面向过程编程语言? 我们可以对比着面向对象编程和面向对象编程语言这两个概念,来理解面向过程编程和面向过程编程语言。还记得之前是如何定义面向对象编程和面向对象编程语言的吗?让我们一块再来回顾一下。 面向对象编程是一种编程范式或编程风格。它以类或对象作为组织代码的基本单元,并将封装、抽象、继承、多态四个特性,作为代码设计和实现的基石 。 面向对象编程语言是支持类或对象的语法机制,并有现成的语法机制,能方便地实现面向对象编程四大特性(封装、抽象、继承、多态)的编程语言。 类比面向对象编程与面向对象编程语言的定义,对于面向过程编程和面向过程编程语言这两个概念,给出下面这样的定义。 面向过程编程也是一种编程范式或编程风格。它以过程(可以为理解方法、函数、操作)作为组织代码的基本单元,以数据(可以理解为成员变量、属性

设计模式之美学习(四):面向对象相比面向过程有哪些优势?面向过程真的过时了吗?

强颜欢笑 提交于 2019-12-06 03:28:25
除了面向对象之外,被大家熟知的编程范式还有另外两种,面向过程编程和函数式编程。面向过程这种编程范式随着面向对象的出现,已经慢慢退出了舞台,而函数式编程目前还没有被广泛接受。 在工作中,很多人搞不清楚面向对象和面向过程的区别,总以为使用面向对象编程语言来做开发,就是在进行面向对象编程了。而实际上,他们只是在用面向对象编程语言,编写面向过程风格的代码而已,并没有发挥面向对象编程的优势。这就相当于手握一把屠龙刀,却只是把它当作一把普通的刀剑来用,相当可惜。 什么是面向过程编程与面向过程编程语言? 我们可以对比着面向对象编程和面向对象编程语言这两个概念,来理解面向过程编程和面向过程编程语言。还记得之前是如何定义面向对象编程和面向对象编程语言的吗?让我们一块再来回顾一下。 面向对象编程是一种编程范式或编程风格。它以类或对象作为组织代码的基本单元,并将封装、抽象、继承、多态四个特性,作为代码设计和实现的基石 。 面向对象编程语言是支持类或对象的语法机制,并有现成的语法机制,能方便地实现面向对象编程四大特性(封装、抽象、继承、多态)的编程语言。 类比面向对象编程与面向对象编程语言的定义,对于面向过程编程和面向过程编程语言这两个概念,给出下面这样的定义。 面向过程编程也是一种编程范式或编程风格。它以过程(可以为理解方法、函数、操作)作为组织代码的基本单元,以数据(可以理解为成员变量、属性

设计模式之美学习(五):哪些代码设计看似是面向对象,实际是面向过程的?

牧云@^-^@ 提交于 2019-12-06 03:26:36
常见的编程范式或者说编程风格有三种,面向过程编程、面向对象编程、函数式编程,而面向对象编程又是这其中最主流的编程范式。现如今,大部分编程语言都是面向对象编程语言,大部分软件都是基于面向对象编程这种编程范式来开发的。 不过,在实际的开发工作中,总以为把所有代码都塞到类里,自然就是在进行面向对象编程了。实际上,这样的认识是不正确的。有时候,从表面上看似是面向对象编程风格的代码,从本质上看却是面向过程编程风格的。 哪些代码设计看似是面向对象,实际是面向过程的? 在用面向对象编程语言进行软件开发的时候,我们有时候会写出面向过程风格的代码。有些是有意为之,并无不妥;而有些是无意为之,会影响到代码的质量。 1. 滥用 getter 、 setter 方法 它违反了面向对象编程的封装特性,相当于将面向对象编程风格退化成了面向过程编程风格。通过下面这个例子来给你解释一下这句话。 public class ShoppingCart { private int itemsCount; private double totalPrice; private List<ShoppingCartItem> items = new ArrayList<>(); public int getItemsCount() { return this.itemsCount; } public void

面向对象编程和面向过程编程的区别总结

不羁的心 提交于 2019-12-05 20:42:48
今天我决定总结一下面向过程编程和面向对象编程的区别。 大学时学的是C语言,没有对象的概念,拿到功能设计图就直接写步骤将功能实现,一体化。而现在工作用的是php语言,拿到需求,会归类、拆解模块、封装类,再通过类调用函数实现。其实在早期,我受C语言影响,很难转变自己的面向过程思维,实现功能的逻辑虽然用的是php但是写出来的还是C逻辑,能减少用类定义就减少,甚至觉得类定义麻烦,没必要。当然,在我慢慢的接触类、对象这些的各种属性各种便利后,真香。 现在网络上有很多关于面向过程和面向对象区别的文档,都总结的很好,总结如下 1、面向过程在解决问题的时候,会分析出解决问题的步骤,然后用函数一步步的将这些步骤实现,依次调用函数。而面向对象在解决问题的时候,会将问题拆散成一个个对象,建立对象的目的不是为了完成某个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为。这来自于思考问题方式的不同。 2、从结构上说,面向过程的特点是过程化和模块化,而面向对象的特点则是类封装、继承和多态(多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法)。 3、执行效率不同,面向过程不需要封装类再实例化对象调用,只定义了函数和调用,所以执行效率会更高一些。 总的来说,面向过程执行效率更高也更直接,面向过程更灵活也更丰满。 来源: https:

面向对象和面向过程详解

扶醉桌前 提交于 2019-12-05 06:14:02
1.前言 其实一直对面向过程和面向对象的概念和区别没有很深入的理解,在自己不断想完善自己的知识体系中,今天借这个时间,写一篇博客。来深入的了解面向过程与面向对象!好记性不如烂笔头!! 2.面向对象与面向过程的区别 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 举一个下五子棋通俗例子吧 哈哈哈 我感觉这儿例子很容易让人理解 面向过程 的设计思路就是首先分析问题的步骤: 1、开始游戏, 2、黑子先走, 3、绘制画面, 4、判断输赢, 5、轮到白子, 6、绘制画面, 7、判断输赢, 8、返回步骤2, 9、输出最后结果。 把上面每个步骤用分别的函数来实现,问题就解决了。 而 面向对象 的设计则是从另外的思路来解决问题。整个五子棋可以分为 1、黑白双方,这两方的行为是一模一样的, 2、棋盘系统,负责绘制画面, 3、规则系统,负责判定诸如犯规、输赢等。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化, 棋盘对象接收到了棋子的i变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。 可以明显地看出, 面向对象是以功能来划分问题 ,而不是步骤

面向过程编程

主宰稳场 提交于 2019-12-04 15:34:14
面向过程编程 面向过程编程是解决问题的一种思想,相当于武林门派,武林门派之间没有好坏之分,因此它与我们之后学习的面向对象编程其实没有好坏之分。 面向过程编程,核心是编程二字,过程指的是解决问题的步骤,即先干什么、后干什么、再干什么、然后干什么…… 基于该思想编写程序就好比在设计一条流水线,面向对称编程其实是一种机械式的思维方式。 当我们写登录功能,我们首先需要输入账号、密码,然后认证两次密码是否相同,然后从数据库中读取密码验证用户密码输入是否正确,然后输入验证码……之后,我们就能够实现登录功能。这样把登录功能问题流程化,进而是解决问题的思路非常清晰。 优点:复杂的问题流程化,进而简单化。 生产汽水瓶的流水线,没办法生产特斯拉。流水线下一个阶段的输入与上一个阶段的输出是有关联的。因此他的扩展性极差。 缺点:扩展性差。 一、注册功能 1.1 接受用户输入用户名,进行合法性校验,拿到合法的用户名 def check_username(): username = input('username>>>').strip() if username.isalpha(): return username else: print('用户名必须为字母,傻叉') 1.2 接受用户输入密码,进行合法性校验,拿到合法的密码 def check_pwd(): while True: pwd = input(

python基础-面向过程编程

笑着哭i 提交于 2019-12-04 12:08:18
面向过程编程 面向过程编程其实是一种 机械式的思维方式 ,其核心就是 "过程" 。 过程指的是 一种解决问题的步骤 ,即先干什么再干什么,最后干什么。 优点 :将复杂的问题流程化,进而简单化。 哈哈哈哈,这种时刻,话不多说,上代码! # 需求:实现一个注册功能 def user_pwd_auth(): """ 检验用户名、密码的合法性 :return: 合法的用户名、密码 """ while True: username = input("请输入用户名>>>:") if username.isalpha(): break else: print("您输入的用户名不合法!") while True: password = input("请输入密码>>>:") re_pwd = input("请输入确认密码>>>:") if password == re_pwd: break else: print("密码和确认密码不一致!") return username, password def cut_user_pwd(username, pwd): """ 拼接用户名和密码,返回一个字符串 :param username: 用户名 :param pwd: 密码 :return: 字符串 """ return f"{username}|{pwd}\n" def save_user

day13面向过程编程

試著忘記壹切 提交于 2019-12-04 11:56:52
面向过程编程: 面向编程时一门编程思想。 面向 过程 编程: ​ 核心是”过程“二字,过程 值得是一种解决问题的步骤,即先干什么再干什么基于该编程思想编写程序,就好比在设计一条工厂流水线,一种机械式的思维方式。 优点: ​ 将复杂的问题流程化,进而简单化 缺点: ​ 若修改当前程序设计的某一部分,会导致其他部分同时需要修改,扩展性差。 ​ 牵一发而动全身 例子: # 注册功能Demo def register(): # 1.设计先让用户输入用户名和密码,校验合法性,得到合法的用户名与密码 user, pwd = get_user_pwd() # 2.设计字符串的拼接, 得到拼接好的字符串 user_pwd_str = cut_user_pwd(user, pwd) # 3.开始写入文件 save_data(user_pwd_str) # 1.先让用户输入用户名和密码,校验合法性 def get_user_pwd(): while True: # 让用户输入用户名与密码 username = input('请输入用户名:').strip() # 校验用户名是否为 英文字母 str.isalpha 校验英文字母、中文 if username.isalpha(): break else: print('用户名不合法') while True: password = input(