完美解读 Java“全面”面向对象的编程语言

北大青鸟大学城校区logo 北大青鸟大学城校区
招生简章校园环境师资力量就业明星招生问答软件工程师北京大学学历学员项目联系我们 报名通道

免费在线咨询通道>>

免费在线报名通道>>

北大青鸟报名电话
当前位置:北大青鸟 > IT培训 > 电脑培训 >

完美解读 Java“全面”面向对象的编程语言

标签:   分类:电脑培训

Java语言作为一门“全面”面向对象的编程语言,提供了面向对象的四种基本性质:抽象性、封装性、继承性和多态性。同时,不得不指出的是,这里的“全面”是狭义的,缘于Java编程语言没有放弃面向过程语言的原生类型,并且有限性地支持AOP(在JDK的API层次,仅支持接口拦截)。综上所述,对于这种狭义的“全面”,在面向对象设计的时,尽量全面地考虑。

通常来说,软件设计质量的标注可以通过“高内聚-低耦合”来衡量。内聚(Cohesion)是一个模块内部各成分之间相关联程度的度量。而耦合是对某元素与其它元素之间的连接、感知和依赖的量度。在设计阶段,开发人员和系统架构师应该考虑。

通常地偏好“实现接口”,而非“继承类”。接口作为一种契约,规约了类与类或者模块和模块之间的通讯语义,而不关心具体实现。主要体现以下设计的原则,分别是:易读性、易用性、扩张性、单一性、安全性、易测性、容错性。 易读性:简单地来说,容易阅读,方便理解。无论是面向实现(过程)编程,还是面向接口编程,如果把握好良好的名称设计和文档,都不难做到易读性。不过面向接口关注的是契约-语义,而不是实现。因此尽量地利用面向接口。题外话,不要过度迷信面向对象,务实大于花哨。

易用性:在易读性的前提上,对象结构方便开发和维护。三分开发,七分维护。因此,在开发阶段应该为方便后期维护做好铺垫。

扩张性:也可以称为弹性(灵活性或者易变性),弹性的实现,可以利用编程语言的特性,比如Java中的接口编程(多态和抽象)和泛型设计(Java5以上支持)。 单一性:通常,一个类或者模块只做“份内”之事,增强内聚性,减少耦合。在政治制度上,“三权分立”很好地诠释了这种思想。在面向对象上,具体体现在,结构单一(系统架构角度),职责单一(需求角度),行为单一(实现角度),依赖单一(通讯角度)等。

安全性:隶属于非功能之一,是设计和开发人员较容易忽略的方面。主要分为,操作系统安全、应用程序安全和社会工程学安全(不是讨论的重点)。Java编程语言,一般保证了操作系统安全(除非恶意修改安全沙箱),主要是落到应用程序安全。常见的应用程序安全性问题,类型安全(错误类型转换、动态合成类等)、线程安全(数据一致性和死锁等)、资源安全(内存、外存和CPU等资源),数据安全(数据封装、零时和持久数据、单一和分布式事务,通讯数据转换和丢失等)等。

易测性:结构易于测试。在面向对象编程中,一般来说,方法作用于对象状态行为表现和控制,构造器则是对象状态初始设定。在测试中,良好的上下文设计至关重要,比如:合理的参数数量和类型、参数职能单一(参数类型和状态不要太复杂)、参数依赖简单(尽量不要依赖第三方API)和易于构造(或模拟)、返回值明确并且规约、模块内部结构简单。良好粒度的设计是便于测试的基础。同时,测试优先(TDD)的方法可以重构模块。

容错性:一般的过程:错误事件产生,错误处理,现场(数据或者状态)恢复。目前,许多框架提供了统一便捷的错误(异常)处理方式,而大多数公司也有自己的处理流程。其目的是,对于少数系统界别和大多数应用级别错误(异常)发生,不影响系统整体运行,提高系统可用性和友好性。在JVM应用程序中,主要是不中断主线程的运行。在设计时,可以考虑分发式(利用异步或者多线程)方法来处理错误(异常),恢复现场等。容错性设计是非常苦难的,其原因是正确运行通路是少数,而异预测常情况是困难的,尤其在现场恢复体现。TDD开发模式和契约编程可以提升系统容错性。

若有疑问请拨打北大青鸟咨询热线:010-80146691或点击免费在线咨询!
  • xml地图 网站地图 招生简章 合作企业 学员项目 联系我们
  • 关闭窗口