• 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偏重业务处理过程中的某个步骤。

  • 相关阅读:
    微信小程序获取微信用户步数
    centos8如何安装nginx
    c语言入门--数组
    净利暴跌9成,主力业务下滑,这家全球知名CIS供应商如何“翻身”?
    IPV4和IPV6是什么?
    极客日报:豆瓣回应删除用户相册图片:低概率bug;传阿里平头哥校招IC岗在成都开出50万天价薪资;Qt 6.2.1正式发布
    leetcode-每日一题-119-杨辉三角2(简单,dp)
    记一次诡异的Cannot find declaration to go to,Cannot resolve method
    程序员搞开源,读什么书最合适?
    基于Android+OpenCV+CNN+Keras的智能手语数字实时翻译——深度学习算法应用(含Python、ipynb工程源码)+数据集(三)
  • 原文地址:https://blog.csdn.net/qq_53968319/article/details/130903746