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

面向过程编程

面向过程编程(POP):

        面向过程编程是以过程为中心的编程思想,从而分析解决问题所需要的步骤,然后编写函数来实现这些步骤,再依次调用这些函数。
      比如把大象放进冰箱的步骤:打开冰箱、把大象装进冰箱、关闭冰箱。

面向对象编程(OOP):

        面向对象编程是相对于面向过程而言的,将功能封装到对象里,强调具备功能的对象。
      比如把大象放进冰箱:调用拥有“把大象装进冰箱”功能的对象。这个功能里面包含了大象(进入)、冰箱(开门、关门)对象。

面向切面编程(AOP):

        核心思想是将业务逻辑中与类不太相关的通用功能切面式的提取出来,让多个类共享这个行为,当需要改变这个行为时不必修改全部的类,而只需要单独修改这个行为。

      比如开发中需要我们在方法执行完成后,记录日志或是计算这个方法的执行时间,不使用AOP时是在方法最后调用另一个专门记录日志的方法,或是在方法体的首尾分别获取时间,然后通过计算时间差来计算整个方法执行所消耗的时间来完成需求。但这样就需要在每个方法都写上一段相同的代码,代码耦合度高,导致后期需要代码维护时就得一个一个修改,而使用AOP可以对业务逻辑的各个部分进行隔离,即AOP能够将那些与业务无关,却为为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,以此减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性。

      现在大多用到AOP的有日志记录,权限验证,事务控制,统一异常处理,性能检测之类的。

你可能感兴趣的:(面试题)