精华内容
下载资源
问答
  • 面向对象编程(object-oriented programming),基于POP的缺点,OOP不允许数据在各个函数之间自由流动,它将数据和对数据进行操作的函数联系得更紧密。OOP将现实世界中的实体分解成对象,对象A包含数据A和函数A,...

    模块化程序设计(modular programming),简单地说就是程序的编写不是开始就逐条录入计算机语句和指令,而是首先用主程序、子程序、子过程等框架把软件的主要结构和流程描述出来,并定义和调试好各个框架之间的输入、输出链接关系。逐步求精的结果是得到一系列以功能块为单位的算法描述。以功能块为单位进行程序设计,实现其求解算法的方法称为模块化。模块化的目的是为了降低程序复杂度,使程序设计、调试和维护等操作简单化。将项目进行划分,每个函数负责实现一部分功能。

     

    自顶向下编程(top-down),先对整个系统有个了解,从高层次进行任务的划分,将大任务不断划分成小任务,每个小任务留到下一级进行处理。(跟编译原理有关,待做)

     

    自底向上编程(bottom-up),从底层开始,一步步合并成整体。(同上)

     

    结构化编程(structured),主张使用顺序、选择、循环三种基本结构来嵌套连结成具有复杂层次的“结构化程序”,严格控制GOTO语句的使用。单出入口。自顶向下,逐步求精的思想。

     

    面向过程编程(procedure-oriented programming),将问题划分成一系列小问题,用不同的函数来完成各个问题,采用的是top-down。这种编程方法强调做事情(函数),但是很少关注于数据的流动。全局的数据可以被所有函数访问和修改,这就导致了数据的不安全性以及当某个函数不小心修改了数据之后我们很难判断到底是哪个函数的问题。此外面向过程的编程不能很好对真实问题建模,因为它不是确切的对应问题的实体element。

     

    面向对象编程(object-oriented programming),基于POP的缺点,OOP不允许数据在各个函数之间自由流动,它将数据和对数据进行操作的函数联系得更紧密。OOP将现实世界中的实体分解成对象,对象A包含数据A和函数A,数据A被隐藏起来并不被其他对象所访问,其他对象要访问数据A只能通过函数A,对象间的通讯由函数来完成。采用的是bottom-up

     

     

    展开全文
  • 面向过程编程面向对象编程面向切面编程理解

    千次阅读 多人点赞 2017-03-17 19:28:55
    面向过程(Procedure Oriented)是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是封装、继承、类。面向对象编程(Object Oriented ...

    面向过程(Procedure Oriented)是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是封装、继承、类。

    面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP 达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。

    面向切面编程(Aspect Oriented Programming(AOP)),是一个比较热门的话题。AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。


    通过以下案例深入了解三者区别:

    项目背景:大学新生报名,需要去相应学院注册登记。接着去财务处进行缴费,缴费完毕,拿着单子领取军训服装,最后去宿舍整理床铺。

    需求分析对每个同学需要完成以下功能:(假设新生有小明,小李,小王,小周)
    注:四位同学不是同一学校的,但是都需要通过以下程序进行注册报名,各个学校可能参考下面流程进行定制
    (1). 去相应学院注册登记
    (2). 去财务处进行缴费
    (4). 缴费完毕
    (5). 拿着单子领取军训服装
    (6). 去宿舍整理床铺。


    一 。 面向过程:

    小明来学校报名
    –>小明去相应学院注册登记
    –>小明去财务处进行缴费
    –>小明缴费完毕
    –> 小明拿着单子领取军训服装
    –>小明去宿舍整理床铺
    小明注册完毕!
    小李来学校报名
    –>小李去相应学院注册登记
    –>小李去财务处进行缴费
    …….
    小李注册完毕!
    ……..

    可以明显的看出来,面向过程主要是对对整个事情的过程通过记流水账的方式进行实现。当然开发效率比较低,不适合做大型应用(当然操作系统内核主要是面向过程语言写的这比较特殊,写起来肯定得好久好久( ▼-▼ ))。

    当需求变化时,比如需要去掉领取军训服的业务,那就麻烦了,需要对每位同学的过程进行修改,,( ▼-▼ )想想都有点可怕!

    或者某些同学无法正常报道,需要改动和这些学生相关的代码,这工作量也不小。可见面向过程的变成想法还是需要进一步提高。

    要是再加上各个学校定制的话,作为萌萌哒程序员,该哭了( ▼-▼ )


    二。面向对象

    首先,对学生报名进行抽象,抽象出来一个学生类,具有下面这几个方法
    (1). 去相应学院注册登记
    (2). 去财务处进行缴费
    (4). 缴费完毕
    (5). 拿着单子领取军训服装
    (6). 去宿舍整理床铺。

    小明来学校报名
    通过上面抽象出来的学生类创建学生实例:小明。然后一次调用它的方法:
    小明.去相应学院注册登记();
    小明.去财务处进行缴费();
    小明.缴费完毕();
    小明.拿着单子领取军训服装();
    小明.去宿舍整理床铺();
    小明注册完毕!
    小李来学校报名
    小李.去相应学院注册登记();
    小李.去财务处进行缴费();
    …….
    小李注册完毕!
    ……..

    比起面向过程编程,面向对象编程简化了代码量,通过抽象,实现代码的复用,提高了开发效率。但是依然需要对每个对象进行引用。只能说是效率相对较高。

    当需求发生变化时,例如,某些同学未能正常报到,需要删除相关代码,任务量相对小点。改动某个环节的内容,也很方便

    但是,当每个学校进行定制的时候尼?这会就有点尴尬了,之前抽象的学生类都得改,改成每个学校的定制类,这样就会有多个学校类,还得该业务代码,,,不敢再想了,有点想哭的感觉。( ▼-▼ )


    二。面向切面

    首先对业务逻辑进行抽象,针对上面的六个业务进行各自封装实现。(已经六个类了)
    然后,制作代理类,根据学校需求进行个性化封装学生类(好多类,至少一个)。
    小明来学校报名
    创建代理类,
    根据学校规定调用相应方法,完成报名注册功能
    小明注册完毕!
    小李来学校报名
    创建代理类,
    根据学校规定调用相应方法,完成报名注册功能
    …….
    小李注册完毕!
    ……..

    切面,指的是项目模块中某些业务逻辑。面向切面编程通俗一点就是面向业务的一种编程思想(当然业务需要一定的共性),然后通过代理完成类的创建,极大程度的降低代码的重复,有效的提高了代码的重用率和开发效率。。。当然结合IOC(控制反转),将对象直接注入到代理类中,通过代理完成调用方法,那就更完美了


    例子比较牵强,看下图形象一点:

    这里写图片描述

    切面是横跨流程的,实现某个特定位置的功能,面向功能进行抽象。具体流程只需做引用即可,而不至于不同流程中冗余很多类似代码。

    展开全文
  • 面向接口编程而不是面向实现编程实例,面向接口编程而不是面向实现编程实例。
  • 面向过程编程面向对象编程的步骤、特性与区别? ** 面向过程编程面向对象编程的区别 ** 面向过程编程: 分析出解决问题所需要的步骤,然后用函数把这些步骤一步步实现,使用的时候再一个个的依次调用即可。 优点...

    面向过程编程和面向对象编程的步骤、特性与区别?

    **

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

    **

    面向过程编程:

    分析出解决问题所需要的步骤,然后用函数把这些步骤一步步实现,使用的时候再一个个的依次调用即可。
    优点:性能高
    缺点:相较于面向对象而言,不易维护,不易复用,不易扩展
    适合于小型的项目

    面向对象编程:

    把事务分解成为一个个对象,然后由对象之间分工与合作。
    优点:易维护,易复用,易扩展,低耦合,系统更加灵活
    有三大特性:封装,继承,多态
    缺点:性能比面向过程低
    适合多人协作的大型项目

    用面向过程的方法写出来的程序就像是一份蛋炒饭,先炒蛋,混合些洋葱粒,胡萝卜丝,豌豆,翻炒片刻,再把饭加入锅里,加各种调料,酱油味精什么的,蛋与饭交融在一起,充分混合,加上各种香料,香味已经渗透到饭里面。吃起来让人欲罢不能。但是,对于我这样不喜欢吃蛋的人来说就不是那么友好了。

    用面向对象写出来的程序就像是一份盖浇饭,可以根据不同的人的喜好来烹饪,有的喜欢番茄炒蛋盖浇饭,有的喜欢青椒肉丝盖浇饭,都可以,直接把菜往饭上一堆就可以了,饭菜是相互独立的,由于菜汁是覆盖在饭的上面的,吃的时候还需搅拌搅拌,让菜汁的香味慢慢融合到饭里,没有蛋炒饭来的那么干脆。

    所以蛋炒饭与盖浇饭谁也代替不了谁,它们是为不同的吃货准备的。

    展开全文
  • 面向过程编程 面向过程编程是一种以过程为中心的编程思想,分析出解决问题的步骤,然后用函数把这些步骤一步一步实现。面向过程编程,数据和对数据的操作是分离的。 面向对象编程 面向对象编程是将事物对象化,通过...

    面向过程编程

    面向过程编程是一种以过程为中心的编程思想,分析出解决问题的步骤,然后用函数把这些步骤一步一步实现。面向过程编程,数据和对数据的操作是分离的。

    面向对象编程

    面向对象编程是将事物对象化,通过对象通信来解决问题。面向对象编程,数据和对数据的操作是绑定在一起的。

    面向对象的三大基本特征:

    封装:把客观事物封装成抽象的类,隐藏属性和方法的实现细节,仅对外公开接口。

    继承:子类可以使用父类的所有功能,并且对这些功能进行扩展。继承的过程,就是从一般到特殊的过程。

    多态:接口的多种不同的实现方式即为多态。同一操作作用于不同的对象,产生不同的执行结果。在运行时,通过指向基类的指针或引用来调用派生类中的虚函数来实现多态。

    封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的类。它们的目的都是为了---代码重用。

    而多态则是为了实现另一个目的---接口重用。

    面向对象的代码更加支持重用,能降低软件开发和维护的成本,提高软件的质量。


    掌握面向对象的困难之处在于思路的转换。我们通常习惯于考虑解决问题的方法,而不是考虑将问题抽象成对象再去解决它。

    从两个简单的例子来理解两者的区别


    第一个简单的例子:编写一个驾驶汽车的方法

    面向过程的程序设计:
    编写一个方法,void drivecar();
    面向对象的程序设计:
    将一辆汽车看成一个对象,将所有汽车对象的共性抽取出来,设计一个类Car,类中有一个方法void drive(),用Car这个类实例化一个具体的对象car,调用:car.drive()。


    第二个简单的例子:求一个长方形的周长和面积。
    面向过程的程序设计方式:
    1、确定长方形周长和面积的算法。
    2、编写两个方法(函数)分别计算长方形的周长和面积。
    3、求周长的方法(函数)和求面积的方法(函数)需要两个参数,分别是长方形的长和宽。

    面向对象的程序设计方式:
    1、一个长方形可以看成一个长方形对象。
    2、一个长方形对象有两个状态(长和宽)和两个行为(求周长和求面积)。
    3、将所有长方形的共性抽取出来,设计一个长方形类。
    4、通过长方形对象的行为,就可以求出某个具体的长方形对象的周长和面积。



    展开全文
  • 面向接口编程面向接口编程面向接口编程
  • AOP面向横截面编程

    2009-05-14 13:58:50
    面向横截面编程面向横截面编程面向横截面编程面向横截面编程面向横截面编程
  • 面向对象编程与非面向对象编程
  • c#面向对象编程课件c#面向对象编程课件c#面向对象编程课件c#面向对象编程课件
  • 为什么我们要面向接口编程?!

    万次阅读 多人点赞 2020-03-06 09:54:17
    面向过程编程(Procedure Oriented、简称PO) 和 面向对象编程(Object Oriented、简称OO) 我们一定听过,然而实际企业级开发里受用更多的一种编程思想那就是:面向接口编程(Interface-Oriented)! 接口这个概念...
  • 面向接口编程面向实现编程

    千次阅读 2018-06-24 09:35:10
    https://blog.csdn.net/u013400743/article/details/51252003面向接口编程面向实现编程最近拜读了四人组的经典名作《设计模式 可复用面向对象软件的基础》一书,打算以博客的形式进行笔记与思考书中提到了可复用...
  • JavaScript编程中多数情况是面向过程编程,但有时候为了更好地封装重用。面向对象思想来编程更为有用。 虽然现前端都开始流行MVC思想的js框架,但并不是说js没用了,学好js对于学习js前端框架,jquery,等都是非常有...
  • Java的面向对象编程Java的面向Java的面向对象编程对象编程
  • C++是面向对象编程,C语言是面向过程编程。因此学习C++的第一件事就是要弄明白什么是面向过程编程,什么是面向对象编程。 之前学习的C语言是面向过程编程,回想一下C语言编程的过程。主函数,定义变量,调用函数...
  • 简述面向函数编程面向对象编程的区别? 什么时候使用面向函数编程?什么时候使用面向对象编程? 函数式编程,顾名思义,这种编程是以函数思维做为核心,在这种思维的角度去思考问题。 这种编程最重要的基础是λ...
  • 面向未来编程

    千次阅读 2016-03-21 13:51:50
    我们一直以来都知道面向对象编程面向过程编程,大多数时候还是面向工资编程面向生活编程面向任务编程面向公司编程面向领导编程。 工资不给力,心里觉得委屈;生活有压力,影响工作情绪;任务完成就好,...
  • 面向对象的Java网络编程 面向对象的Java网络编程
  • 面向接口编程详解

    2021-02-27 09:41:57
    本系列《面向接口编程详解》将分为三部分:面向接口编程详解(一)——思想基础在这一篇中,将对接口及面向接口编程有个大致的介绍,着重在于思想上的讲解。面向接口编程详解(二)——编程实例这一篇将结合一个实例...
  • 面向接口编程面向对象编程的区别

    万次阅读 多人点赞 2017-11-02 11:21:40
    我想,对于各位使用面向对象编程语言的程序员来说,“接口”这个名词一定不陌生,但是不知各位有没有这样的疑惑:接口有什么用途?它和抽象类有什么区别?能不能用抽象类代替接口呢?而且,作为程序员,一定经常听到...
  • 面向对象编程转为面向接口编程

    千次阅读 2018-08-19 01:48:07
    面向对象,本身是软件编程发展过程中的产物,当然相比于面向过程,是一种突破性的设计。但是,如果只是停留在面向对象编程,而不是继续向前看。那么,无疑是一种固步自封的陷阱。 更加先进的编程思想是什么呢? ...
  • java面向对象编程

    2017-12-05 23:49:29
    java面向对象编程文档 java面向对象编程文档 java面向对象编程文档
  • 面向服务编程

    千次阅读 热门讨论 2016-01-24 19:14:30
    从最初的面向过程编程,到后来觉得难以理解的面向对象编程,从软件工程的发展历程中来看,这已经成为我们编程路上熟知的两种编程方式。  接触了ITOO项目这么长时间,才发现,不知不觉,我们已经进入了软件工程发展...
  • 面向对象编程面向过程编程的区别(翻译版)  我们知道现在存在着两种不同的编程方式-1) 面向过程编程(POP)以及2)面向对象编程。我们可以任意选择一种方式来编写程序,但是我们得知道这两种编程方式的区别。这...
  • Android 面向接口编程

    千次阅读 2017-07-04 19:41:26
    关键词:Android、POP、面向接口编程面向过程、面向协议一、概述面向接口编程面向对象编程的一种实现方式,它的核心思想是将抽象与实现分离,从组件的级别来设计代码,达到高内聚低耦合的目的。最简单的面向...
  • 面向接口编程面向实现编程

    千次阅读 2012-05-13 09:54:35
    面向接口表示子类是实现接口或者抽象类,面向实现表示继承普通类。 明显前者耦合比较低,因修改代码比较低,因为接口和抽象类本身有的方法不干...//面向实现编程 /** * 普通类animal */ class animal { public $na
  • 首先java就是面向对象编程,所谓在java中万事万物皆对象,这是因为java中所有类的调用都是new出来的, 其次面向对象用到三大特性,即封装、多态、继承。 2、面向接口编程: 一个接口可以从三方面去考察:制定...
  • 一、面向过程编程思想 百度百科这样解释: “面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。 面向过程其实是最为实际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想。可以说面向...
  • Spring AOP面向方面编程原理Spring AOP面向方面编程原理Spring AOP面向方面编程原理Spring AOP面向方面编程原理Spring AOP面向方面编程原理Spring AOP面向方面编程原理Spring AOP面向方面编程原理

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 803,440
精华内容 321,376
关键字:

编程面向