首页 > 编程语言 >关于面向过程,面向对象,面向切面编程

关于面向过程,面向对象,面向切面编程

时间:2022-11-28 16:01:29浏览次数:43  
标签:对象 编程 系统 面向对象 面向 方法 切面

  最近在学习spring的AOP,顺便把三种思想一起总结一下。仅代表个人理解,欢迎指正。

  首先是面向过程编程,在实现业务逻辑的时候,整理出业务流,然后细分成方法,编程实装。

通过对这一系列方法进行一定顺序的调用,达到程序处理业务的目的。

这种思想的特点很明显,就是直接了当,你需要什么样的处理,我就写什么样的方法,没有多余的东西。

相对应的优点就是系统处理速度快。这个很好理解。

缺点也是非常明显,不易于扩展和重用。系统和系统之间多多少少都会有细微的业务差异,系统A量身定制的方法很难直接拿来给系统B用,

有些方法可能可以改改拿来用,但对于整个系统开发来说,这点重用好比九牛一毛。

扩展性也是一大问题,这就像是一个数组,我想往里面插入一个元素,我得先找到插入的位置,插入元素后,本来在后面的元素还得依次往后移位。

这里我想表达的是两个点:1,扩展时修改的位置不好找;2,修改后的影响确认工作量很大。

  当然不是说面向过程就不好,思想本身没有对错,只是适用的情况不同而已。

比如在需求千变万化的快速开发中,基于面向过程的思想便不再适用,面向对象显然更合适。

  面向对象编程,本质上有点类似于一种语法糖,贴合现实的思想本身就可以提高编程者的效率。

同样的需求,用面向对象的思想来设计,跟面向过程最大的区别就是关注点从方法转移到了对象,从方法与方法的协作提升到对象与对象的协作。

通过继承和多态我们可以很方便地重用代码,扩展功能。

  面向切面编程,如果说对象中的一个方法是一个点,那多个不同对象中的多个方法组合起来就像一个横切面。

那为什么需要这个横切面呢,当然是为了易于维护。想象一下,这些方法在我的系统中是类似固定组合的存在,

假如我每次调用时都临时把它们组合起来,那如果用到的地方很多,重复代码就会很多,后期有改动时,改动量就会很大。

但如果我把这些方法提前组合好(类似面向过程的设计,但组合后仍是对象),那是不是会好很多,其实这也是高内聚的一种表现。

 

标签:对象,编程,系统,面向对象,面向,方法,切面
From: https://www.cnblogs.com/ljx66/p/16932426.html

相关文章

  • 注解开发-->面向切面
    1.创建一个接口 2.编写切面的方法   3.在方法上调用注解 ......
  • 面向对象(op)
    属性+方法=类从认识论角度是先有对象后有类,对象是具体的事物比如人,而类是抽象的是对对象的抽象比如人会做饭这一类人抽象出来就成为了厨师从代码运行角度是先有类后有对......
  • HyperView隐藏切面(Section Cut)
    剖面-断面-切面Hide-ManipulatorGridline...显示与隐藏切面的网格剖面/切面打开方式剖面/切面隐藏方式需要更改两个部分......
  • 顶会分享 | 面向大尺度室内场景的主动式重建方法(CVPR2022)
    主要参考作者论文: 1、Multi-RobotCollaborativeDenseSceneReconstruction.SIGGRAPH2019. 2、Multi-RobotActiveMappingviaNeuralBipartiteGraphMatching.CV......
  • 06-面向对象_继承
    typora-root-url:images一、简介1.1、问题引入​ 在现实生活中,继承一般指的是子女继承父辈的财产。在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物......
  • 05-面向对象_封装
    typora-root-url:images一、编程思想1.1、什么是思想​ 何谓编程思想?首先解释一下“思想”。​ 先问你个问题:你想做个怎样的人?​ 可能你会回答:我想做个好人,孝敬......
  • 面向大规模队列,百万并发的多优先级消费系统设计
    大规模队列的核心诉求,不仅需要「快」,还需要兼顾「公平」。01引言HTTP是一种常用的通信协议,除了常见网站访问、上传下载,HTTP协议还经常被用在消息推送场景上。设想你搭......
  • 面向对象的JavaScript框架 MooTools
    MooTools是一个简洁,模块化,面向对象的JavaScript框架。它能够帮助你更快,更简单地编写可扩展和兼容性强的JavaScript代码。Mootools从Prototype.js中汲取了许多有益的设计理......
  • c++ 面向对象 class类总结
    c++三大特性访问权限​ 在c++中通过public、protected、private三个关键字来控制成员变量和成员函数的访问权限,它们分别表示为公有的、受保护的、私有的,称为成员访问限......
  • 10、go的面向对象
    结构体结构体的定义//定义结构体,老师的结构体,各个属性统一放入结构体管理typeTeacherstruct{ //变量名大写开头外界可以访问 Namestring Ageint Scho......