理解POP,OOP,AOP编程思想

如何理解POP,OOP,AOP之间的关系

1.POP

pop即Process-oriented programming ,是一种面向过程编程。
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向过程是一种基础的方法。它考虑的是实际地实现。一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法。
面向过程编程是以功能为中心来进行思考和组织的一种编程方法,它强调的是系统的数据被加工和处理的过程,在程序设计中主要以函数或者过程为程序的基本组织方式,系统功能是由一组相关的过程和函数序列构成。
从思维上来讲,面向过程更强调细节,忽视了整体性和边界性,但这与现实世界有很大的出入,因为现实世界中,这种过程都不是孤立存在的,而是从属于某个对象,因此,面向过程虽然反映了现实世界的而一个方面(功能),但无法更加形象的模拟或者表示现实世界。

2.OOP

oop即Object Oriented Programming,是一种面向对象编程。
面向对象是一种以事物为中心的编程思想。
面向对象是一种编程范式,满足面向对象编程的语言,一般会提供类、封装、继承等语法和概念来辅助我们进行面向对象编程。所谓的面向对象就是将我们的程序模块化,对象化,把具体事物的特性属性和通过这些属性来实现一些动作的具体方法放到一个类里面。

面向对象的三大特征:继承,封装,多态
(1)继承

     继承:A类继承B类,我们通常称继承的A类为子类,被继承的B类为父类;

     理解:子类与父类而是一种特殊化与一般化的关系,子类是父类更加详细的分类。

     实现继承后子类自动拥有了父类的属性和方法,子类可以写自己特有的属性和方法,目的是实现功能的扩展,子类也可以复写父类的方法即方法的重写。

(2)封装

	封装是指将数据与具体操作的实现代码放在某个对象内部,使这些代码的实现细节不被外界发现,外界只能通过接口使用该对象,
	
	而不能通过任何形式修改对象内部实现,正是由于封装机制,程序在使用某一对象时不需要关心该对象的数据结构细节及实现操作的方法。
	
    也就是说,用户无需知道对象内部方法的实现细节,但可以根据对象提供的外部接口(对象名和参数)访问该对象。

封装的好处:

     使用封装能隐藏对象实现细节,使代码更易维护,同时因为不能直接调用、修改对象内部的私有信息,在一定程度上保证了系统安全性。

    1.实现了专业的分工。将能实现某一特定功能的代码封装成一个独立的实体后,各程序员可以在需要的时候调用,从而实现了专业的分工。

    2.隐藏信息,实现细节。通过控制访问权限可以将可以将不想让客户端程序员看到的信息隐藏起来,如某客户的银行的密码需要保密,只能对该客户开发权限。

(3)多态

      多态是面向对象编程中另一个突出的特征,所谓的多态是指在继承体系中,所有派生类都从基类继承接口,但由于每个派生类都是独立的实体,因此在接收同一消息的时候,可能会生成不同的响应。
      
      多态的作用作为隐藏代码实现细节,使得代码能够模块化;扩展代码模块,实现接口重用。
      
      简单来说:一种行为产生多种效果。

总的来说:封装可以隐藏实现细节同时包含私有成员,使得代码模块化并增加安全指数;继承则可以扩展已存在的模块,目的是为了代码重用;多态则是为了保证:类在继承和派生的时候,保证家谱中任何类的实例被正确调用,实现了接口重用。

3.AOP

aop即Aspect Oriented Program,是一种面向切面编程。

首先,在面向切面编程的思想里面,把功能分为核心业务功能,和周边功能。
所谓的核心业务,比如登陆,增加数据,删除数据都叫核心业务。
所谓的周边功能,比如性能统计,日志,事务管理等等。

周边功能在Spring的面向切面编程AOP思想里,被定义为切面

在面向切面编程AOP的思想里面,核心业务功能和切面功能分别独立进行开发,
然后把切面功能和核心业务功能 “编织” 在一起,这就叫AOP。

面向切面更像是为了解决一个特定的问题而设计的一种编程方法,比如有很多代码都需要添加日志控制,权限控制,当然你也可以直接写代码在方法里面,但是这样首先如果你要修改的话,就需要修改很多的地方,并且这样的公共行为就和代码高度耦合,所以解决的方法当然就是集中管理。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值