面向过程编程是解决问题的一种思想,相当于武林门派,武林门派之间没有好坏之分,因此它与我们之后学习的面向对象编程其实没有好坏之分。
面向过程编程,核心是编程二字,过程指的是解决问题的步骤,即先干什么、后干什么、再干什么、然后干什么……
基于该思想编写程序就好比在设计一条流水线,面向对称编程其实是一种机械式的思维方式。
当我们写登录功能,我们首先需要输入账号、密码,然后认证两次密码是否相同,然后从数据库中读取密码验证用户密码输入是否正确,然后输入验证码……之后,我们就能够实现登录功能。这样把登录功能问题流程化,进而是解决问题的思路非常清晰。
优点:复杂的问题流程化,进而简单化。
生产汽水瓶的流水线,没办法生产特斯拉。流水线下一个阶段的输入与上一个阶段的输出是有关联的。因此他的扩展性极差。
缺点:扩展性差。
用户功能层:实现用户具体的功能。
接口层:连接数据处理层和用户功能层。数据处理层:处理数据后把结果交给接口层。
分层实现功能的好处:当我们需要实现web端和app端的软件,我们只要把数据处理层和接口层写好,然后实现不同的用户功能层即可,web端使用web端的用户功能层,app端使用app端的用户功能层,但是接口层和数据处理层是通用的。
例如利用分层思想简单实现用户注册登录的功能:
def input_username_pwd(): username = input('username:') pwd = input('pwd:') return username, pwd def read_file(filename): with open(filename, 'r', encoding='utf8') as fr: data = fr.read() return data def write_file(filename, data): with open(filename, 'w', encoding='utf8') as fw: fw.write(data) def register(): print('请输入注册的用户名及密码:') username, pwd = input_username_pwd() with open('user_info.txt', 'a', encoding='utf8') as fa: fa.write(f'{username}:{pwd}|') def login(): print('请输入登录的用户名及密码:') username, pwd = input_username_pwd() user_info = f'{username}:{pwd}' data = read_file('user_info.txt') user_info_list = data.split('|') if user_info in user_info_list: print('登录成功') else: print('登录失败') register() login()把各功能分开之后,功能与功能直接解耦合,复杂的问题流程化,更加清晰。
转载于:https://www.cnblogs.com/dadazunzhe/p/11352659.html
相关资源:编程新手真言......