• C#面试题 1


    一、AOP是啥?解决什么样的问题?

    面向切面编程。(这种思想很广泛)

    AOP是为了弥补OOP的不足,解决OOP的问题(共性和扩展问题)。

    二、POP是啥?

    面向过程编程,一种以过程为中心的编程思想。分析出解决问题所需要的步骤,然后用函数把这些步骤一步步的实现,使用的时候一个个的依次调用。它是最实际的一种思考方式,符合人类的思考方式,一种基础的方法,从实际出发。

    三、OOP是啥?OOP的问题?

    面向对象编程思想。解决越来越多的问题,越来越复杂的问题。程序规模不大的时候,面向过程其实是一个比较有优势的思想。OOP和POP是互补的。

    一个模块功能由多个类共同实现,模块又组成了某项服务,多个服务构成一个完整的系统。类应该是固定的,不应该频繁的修改。有那么多的设计原则和设计模式,就是为了让类固定。类是横跨众多模块,在各个模块里是七零八散的。从对象的组织角度来讲,分类方式都是一样继承关系(纵向),这也是OOP思想。

    只使用OOP思想会带来的问题:1.共性问题。对象设计的时候一般都是纵向思维,总会有一些共性。2.扩展问题。当我们需要对现有的对象动态增加某些行为或责任会变化的困难。

    四、AOP到底是什么?

    面向切面编程,横切关注点模块化。【OOP是使用类将状态(属性)和行为模块化。】类和接口组织的,横切关注点(跨越应用程序的多个模块的功能需求)。

    日志记录、性能统计、安全控制、事务处理、异常处理,都可以从业务代码中划分出来;非业务逻辑的方法中,AOP就是将公共的功能提取出来,公共的模块,只关注通用功能,不关注业务逻辑。

    五、AOP有什么优势?

    ①将通用功能从业务逻辑中抽离出来,提高代码复用性,有利于后期的维护和扩展。

    ②在软件设计时,抽出通用功能,有利于软件设计的模块化,降低架构的复杂度。

    六、与OOP有什么区别?

    OOP针对业务处理过程的实体、属性和行为进行抽象封装,逻辑单元划分;

    AOP则是针对业务处理过程中的切面进行提取,面对处理过程中的某个步骤或阶段,逻辑过程中各个部分之间低耦合性。

    总结:面向目标不同,OOP面向名词,AOP面向动词;

             思想结构不同,OOP是纵向,AOP是横向;

            注重方面不同,OOP业务逻辑单元划分,AOP偏重业务处理过程中的某个步骤。

  • 相关阅读:
    中级C++:AVL树
    基于Matlab使用线性FM波形对带状合成孔径雷达系统建模(附源码)
    springboot中aop的代理模式
    【RabbitMQ实战】01 3分钟在Linux上安装RabbitMQ
    雷电模拟器端口号 adb连接
    单链表初阶的两道基础题
    Vue中如何进行数据请求拦截与错误处理
    将数据库拿到的数据渲染到elementUI 中的table中去
    n 皇后问题
    Autosar Configuration(六) Security之配置DBC的SecOC属性
  • 原文地址:https://blog.csdn.net/qq_53968319/article/details/130903746