【337天】我爱刷题系列096(2018.01.08)

叨叨两句

  1. ~

牛客网——java专项练习075

1

不能用来修饰interface的有( )(仅限外部接口)
正确答案: A C D 你的答案: A C (错误)
A private
B public
C protected
D staticjava

另外一道题考察: 在 jdk1.8版本下不能修饰interface的修饰符有哪些,
private和protected是不能的,争议在于static,1.8版本支持static修饰接口的方法

2

关于AOP错误的是?
正确答案: C
A AOP将散落在系统中的“方面”代码集中实现
B AOP有助于提升系统可维护性
C AOP已经表现出将要替代面向对象的趋势
D AOP是一种设计模式,Spring提供了一种实现设计模式

AOP和OOP都是一套方法论,也能够说成设计模式、思惟方式、理论规则等等。 
AOP不能替代OOP,OOP是obejct abstraction,而AOP是concern abstraction,前者主要是对对象的抽象,诸如抽象出某类业务对象的公用接口、报表业务对象的逻辑封装,更注重于某些共同对象共有行为的抽象,如报表模块中专门须要报表业务逻辑的封装,其余模块中须要其余的逻辑抽象 ,而AOP则是对分散在各个模块中的共同行为的抽象,即关注点抽象。一些系统级的问题或者思考起来总与业务无关又多处存在的功能,可以使用AOP,如异常信息处理机制统一将自定义的异常信息写入响应流进而到前台展现、行为日志记录用户操做过的方法等,这些东西用OOP来作,就是一个良好的接口、各处调用,但有时候会发现太多模块调用的逻辑大都一致、而且与核心业务无大关系,能够独立开来,让处理核心业务的人专一于核心业务的处理,关注分离了,天然代码更独立、更易调试分析、更具好维护。 
核心业务仍是要OOP来发挥做用,与AOP的侧重点不同,前者有种纵向抽象的感受,后者则是横向抽象的感受, AOP只是OOP的补充,无替代关系