• JAVA OOP学习笔记——面向过程与面向对象


      面向过程重在怎么干,怎么按步骤把任务做完;而面向对象重在让谁去干,不关注完成任务的过程与方法。

      两者可通过企业发展来类比:

    早期的编程任务较简单,所需完成的任务是一些计算方面的工作,这时以面向过程的方式来一步步编写程序是可行的。面向过程适合于这种简单的任务。

    企业初期,公司较小,业务也较少,几个人便可流程一步步完成任务 。

     现在编程变得复杂,面向更大的软件,这时所处理的业务大了,数据量也更多了,如果仍以面向过程的方式来组织代码 ,将变得很困难,一个地方的修改很容易影响全局。这时采用面向对象的方式来组织相关的数据和方法,把它们放到一个相关的类中进行封装,就方便许多,由于面向对象的封装性,类中代码的修改对外界影响将会很小。  企业发展起来后,业务变得繁多复杂,这时几个人来完成所有工作是不现实的,这时便设立各种部门,老板把要做的事务交给相应的部门即可,无需关注事务如何实现,只关注结果即可。

    代码模拟:

      

    public class Boss{
        public 结果 call1 人事部(待执行任务){
            人事部类对象.处理方法(待执行任务); //通知人事部去做指定任务
        }
    
        public 结果 call2 财政部(待执行任务){
            财政部类对象.处理方法(待执行任务);
        }
    
        public 结果 call3 行政部(待执行任务){
            行政部类对象.处理方法(待执行任务);
        }    
    
        private 人事部类对象;
        private 财政部类对象;
        private 行政部类对象;          
    }

      另外,面向对象和面向过程关系是很密切的,面向对象编程中包含面向过程,在把复杂问题化为简单方法时,方法的编写就是通过面向过程思想来实现的。

      一个经典的比喻:面向对象是盖浇饭、面向过程是蛋炒饭。盖浇饭的好处就是“菜”“饭”分离,从而提高了制作盖浇饭的灵活性。饭不满意就换饭,菜不满意换菜。用软件工程的专业术语就是“可维护性”比较好,“饭” 和“菜”的耦合度比较低。

    总结

      1.对象说白了也是一种数据结构(对数据的管理模式),将数据和数据的行为放到了一起。

      2.在内存上,对象就是一个内存块,存放了相关的数据集合。

      3.对象的本质就一种数据的组织方式。

  • 相关阅读:
    CF-911E.Stack Sorting(栈)
    随机算法 && CodeForces
    CF-579D."Or" Game(或运算)
    CF-242E.XOR on Segment(异或线段树)
    莫队 && 洛谷 P1494 [国家集训队]小Z的袜子
    洛谷 P4168 [Violet]蒲公英(分块)
    分块 && 洛谷 P2801 教主的魔法
    启发式合并 && U41492 树上数颜色
    使用mysqlbinlog server远程备份binlog的脚本
    mysqldump备份过程中都干了些什么
  • 原文地址:https://www.cnblogs.com/Hr666/p/10315562.html
Copyright © 2020-2023  润新知