zoukankan      html  css  js  c++  java
  • 001---面向对象和面向过程的区别

    面向对象和面向过程的区别
    • 面向过程

      • 概念:核心是'过程',指解决问题的步骤。先干什么再干什么,基于面向过程设计程序就好比在设计一条流水线,是一种机械式的思维方式。
      • 优点:复杂的问题流程化,进而简单化。
      • 缺点:可扩展性差。中间某个环节出了问题,影响全局,牵一发而动全身。
      • 应用场景:适用于一旦实现功能就很少改动的场景。比如:简单的脚步和一些一次性任务、Linux内核、git、Apache HTTP Server等。
      • 代码示例:
      import json
      import re
      
      
      # 注册
      def interactive():
          name = input('用户名:').strip()
          pwd = input('密码:').strip()
          email = input('邮箱:').strip()
          return {
              "name": name,
              "pwd": pwd,
              "email": email
          }
      
      
      # 检测数据
      def check(user_info):
          is_valid = True
          if len(user_info['name']) == 0:
              print('用户名不能为空')
              is_valid = False
          if len(user_info['pwd']) < 6:
              print('密码不能小于6位')
              is_valid = False
          if not re.search(r'@.*?.com$', user_info['email']):
              print('邮箱格式不合法')
              is_valid = False
          return {
              'is_valid': is_valid,
              'user_info': user_info
          }
      
      
      def register(check_info):
          if check_info['is_valid']:
              with open('db.json', 'w', encoding='utf-8') as f:
                  json.dump(check_info['user_info'], f)
      
      
      if __name__ == '__main__':
          user_info = interactive()
          check_info = check(user_info)
          register(check_info)
      
    • 面向对象

      • 概念:核心是'对象',站在上帝的角度,万物皆对象。把我们人类当作类,每个人就是一个对象,每个对象都有姓名、年龄、身高和体重等特征。每个对象都有走路、睡觉、说话等行为,总结来说:对象是特征和技能的结合体。
      • 优点:可扩展性强
      • 缺点:编程复杂度高
      • 应用场景:代码量多,功能多,改动大,需不断迭代和维护的软件中。比如:复杂的电商程序、企业内部的管理系统、游戏等。
      • 代码示例:
      class LuffyStudents:
          school = 'Luffy'
      
          def learn(self):
              print('学习')
      
          def eat(self):
              print('吃东西')
      
          def sleep(self):
              print('睡觉')
            
      # 实例化了三个学生对象
      s1 = LuffyStudents()
      s2 = LuffyStudents()
      s3 = LuffyStudents()
      print(s1,s1.school)
      print(s2)
      print(s3)
      
  • 相关阅读:
    TERSUS无代码开发(笔记43)-整理可视化元件手册-13文本/字符串处理元件(28个)
    TERSUS无代码开发(笔记42)-整理可视化元件手册-12安全控制元件(9个)
    TERSUS无代码开发(笔记41)-整理可视化元件手册-11数学元件(29个)
    TERSUS无代码开发(笔记40)-整理可视化元件手册-10流程处理元件(4个)
    TERSUS无代码开发(笔记39)-整理可视化元件手册-09显示元件(40个)
    java实现md5加密
    redis的配置文件redis.conf常用配置
    centos7中安装redis出现的问题
    队列
    生产者 和 消费者
  • 原文地址:https://www.cnblogs.com/xjmlove/p/10317630.html
Copyright © 2011-2022 走看看