zoukankan      html  css  js  c++  java
  • 面向对象和面向过程

    我们执行相同的操作,总是喜欢将过程封装到一个方法里面,之后就不再从底层做起了,直接调用。
    当需求越来越多,方法也就越来越多,我们使用类封装方法。后面使用该操作就直接找到类,然后再找方法。
    面向过程:
    针对你的需求一步一步实现,全部自己参与执行。
    面向对象:
    使用封装好了的一面向过程操作,直接调用,简化自己。小程序短时间或许看不出什么优势,但是后来处理多了就发现这是一种必须的聪明的做法。
    现实举例:
    吃饭:
    面向过程:
    饭怎么来?-->买米,买菜
    做饭-->洗菜,煮饭,炒菜,洗碗
    吃饭
    家务-->洗碗,抹桌子。。。
    面向对象:
    我要吃饭,尽快?
    餐馆可以直接吃饭。
    点菜-->吃饭-->付账-->玩去了

    面向对象是基于面向过程的,因为过程是必须有人完成的。面向对象的选择性更大,重视的是结果而不是过程。
    可以理解成面向对象是面向过程的优化。
    面向对象开发的程序,结构清晰,便于维护。

    例子:

    将大象装进冰箱:

    面向过程做法:

      打开冰箱门

      大象进去

      关上冰箱门

    代码体现:

    class DxToBx{
      public static void main(String[] args){
              open();
              void();
              out();
        }   
        public static void open(){
           //打开冰箱门   
        }    
        public static void in(){
           //大象进去
        }   
        public static void out(){
          //关上冰箱门
        }
    }

    方法调用时面向过程中非常实用的一种方法。如上图所示,结构清晰,简单快捷。但这种状况紧紧表现在小程序当中。过程中不含有对象的话,比如我的打开冰箱门又涉及到将手放到冰箱门上、往外拉等方法,那么在打开方法里面就需要调用手放到冰箱门上,往外拉等方法,还有更多可能。这样的话,在DxToBx中就存在好多并列的方法,因为方法是不允许在其他方法中声明的。过多的时候,你需要改变一个操作,就需要从上往下找过去找到对应的方法,不便于维护而且也不是那么直观了。

    面向对象做法:

    怎么才能符合面向对象思想呢?

      A.需要哪些类

      B.每个类要做什么

      C.类和类的关系

    把大象装进冰箱的分析。(如何分析有哪些类呢?UML类图。名词提取法)

      大象

        进去

      冰箱

        打开

        关闭

      Demo

        main方法

      类与类的关系:

        Demo中使用大象和冰箱的功能

    代码实现:

    Class Dx{
        public void in(){
         //..
        }   
    }
    Class BX{
        public void open(){
        //..
        }
        public  void close(){
        //..
       }   
    }
    Class Demo{
        public static void main(String[] args){
             Dx dx=new Dx();
             Bx bx=new Bx();
             bx.open();
             dx.in();
             bx.close();
        }
    }

    虽然这样看起来代码更复杂,但结构更加清晰,更易于后期的维护

      

  • 相关阅读:
    Highcharts之饼图
    设计模式学习之原型模式
    jQuery学习之结构解析
    JS学习之闭包的理解
    JS学习之prototype属性
    JS学习之事件冒泡
    Mybatis学习之JDBC缺陷
    Spring学习之Aop的基本概念
    Struts学习之值栈的理解
    Struts学习之自定义结果集
  • 原文地址:https://www.cnblogs.com/aigeileshei/p/5527548.html
Copyright © 2011-2022 走看看