zoukankan      html  css  js  c++  java
  • 面向过程编程

    面向过程编程

    一、面向过程编程

    面向过程编程是解决问题的一种思想,相当于武林门派,武林门派之间没有好坏之分,因此它与我们之后学习的面向对象编程其实没有好坏之分。

    面向过程编程,核心是编程二字,过程指的是解决问题的步骤,即先干什么、后干什么、再干什么、然后干什么……

    基于该思想编写程序就好比在设计一条流水线,面向对称编程其实是一种机械式的思维方式。

    当我们写登录功能,我们首先需要输入账号、密码,然后认证两次密码是否相同,然后从数据库中读取密码验证用户密码输入是否正确,然后输入验证码……之后,我们就能够实现登录功能。这样把登录功能问题流程化,进而是解决问题的思路非常清晰。

    56面向过程编程-流水线.jpg?x-oss-process=style/watermark

    优点:复杂的问题流程化,进而简单化。

    生产汽水瓶的流水线,没办法生产特斯拉。流水线下一个阶段的输入与上一个阶段的输出是有关联的。因此他的扩展性极差。

    缺点:扩展性差。

    二、模块化思想

    模块化思想,将9个函数分成3大类模块,模块1/模块2/模块3, 以前9个函数互相关联,顶多3个之间互相关联呀.解耦合了(把重复的代码再一次抽离)

    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():
        username, pwd = input_username_pwd()
    
        with open('user_info.txt', 'a', encoding='utf8') as fa:
            fa.write(f'{username}:{pwd}|')
    
    
    def login():
        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()
    
    

    三、分层实现功能

    • 用户功能层:实现用户具体的功能。
    • 接口层:连接数据处理层和用户功能层。
    • 数据处理层:处理数据后把结果交给接口层。

    分层实现功能的好处:当我们需要实现web端和app端的软件,我们只要把数据处理层和接口层写好,然后实现不同的用户功能层即可,web端使用web端的用户功能层,app端使用app端的用户功能层,但是接口层和数据处理层是通用的。

    在当下的阶段,必将由程序员来主导,甚至比以往更甚。
  • 相关阅读:
    如何限制Dedecms文章或产品描述的字数
    Python 进阶 之 yield
    Python 进阶 之 contextlib模块
    JavaScript 之 定时器 延迟器
    Python 进阶 之 函数对象
    CSS入门之定义和应用格式
    Python 进阶 之 socket模块
    Python 进阶 之 闭包变量
    Python 进阶 之 else块 巧(慎)用
    Python 进阶 之 zip() izip() zip_longest函数
  • 原文地址:https://www.cnblogs.com/randysun/p/11352801.html
Copyright © 2011-2022 走看看