搜索
首页 电脑/网络 软件 系统软件

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

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

全部回答

2018-04-02

44 0
    通常来说,软件设计质量的标注可以通过“高内聚-低耦合”来衡量。内聚(Cohesion)是一个模块内部各成分之间相关联程度的度量。而耦合是对某元素与其它元素之间的连接、感知和依赖的量度。
  在设计阶段,开发人员和系统架构师应该考虑。 通常地偏好“实现接口”,而非“继承类”。  接口作为一种契约,规约了类与类或者模块和模块之间的通讯语义,而不关心具体实现。主要体现以下设计的原则,分别是:易读性、易用性、扩张性、单一性、安全性、易测性、容错性。
   易读性:简单地来说,容易阅读,方便理解。无论是面向实现(过程)编程,还是面向接口编程,如果把握好良好的名称设计和文档,都不难做到易读性。  不过面向接口关注的是契约-语义,而不是实现。
  因此尽量地利用面向接口。题外话,不要过度迷信面向对象,务实大于花哨。 易用性:在易读性的前提上,对象结构方便开发和维护。三分开发,七分维护。因此,在开发阶段应该为方便后期维护做好铺垫。 扩张性:也可以称为弹性(灵活性或者易变性),弹性的实现,可以利用编程语言的特性,比如Java中的接口编程(多态和抽象)和泛型设计(Java5以上支持)。
     单一性:通常,一个类或者模块只做“份内”之事,增强内聚性,减少耦合。在政治制度上,“三权分立”很好地诠释了这种思想。在面向对象上,具体体现在,结构单一(系统架构角度),职责单一(需求角度),行为单一(实现角度),依赖单一(通讯角度)等。
   安全性:隶属于非功能之一,是设计和开发人员较容易忽略的方面。  主要分为,操作系统安全、应用程序安全和社会工程学安全(不是讨论的重点)。Java编程语言,一般保证了操作系统安全(除非恶意修改安全沙箱),主要是落到应用程序安全。
  常见的应用程序安全性问题,类型安全(错误类型转换、动态合成类等)、线程安全(数据一致性和死锁等)、资源安全(内存、外存和CPU等资源),数据安全(数据封装、零时和持久数据、单一和分布式事务,通讯数据转换和丢失等)等。
     易测性:结构易于测试。在面向对象编程中,一般来说,方法作用于对象状态行为表现和控制,构造器则是对象状态初始设定。在测试中,良好的上下文设计至关重要,比如:合理的参数数量和类型、参数职能单一(参数类型和状态不要太复杂)、参数依赖简单(尽量不要依赖第三方API)和易于构造(或模拟)、返回值明确并且规约、模块内部结构简单。
    良好粒度的设计是便于测试的基础。同时,测试优先(TDD)的方法可以重构模块。 容错性:一般的过程:错误事件产生,错误处理,现场(数据或者状态)恢复。目前,许多框架提供了统一便捷的错误(异常)处理方式,而大多数公司也有自己的处理流程。
  其目的是,对于少数系统界别和大多数应用级别错误(异常)发生,不影响系统整体运行,提高系统可用性和友好性。    在JVM应用程序中,主要是不中断主线程的运行。
  在设计时,可以考虑分发式(利用异步或者多线程)方法来处理错误(异常),恢复现场等。容错性设计是非常苦难的,其原因是正确运行通路是少数,而异预测常情况是困难的,尤其在现场恢复体现。TDD开发模式和契约编程可以提升系统容错性。
  

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
系统软件
程序设计
电脑装机
操作系统/系统故障
硬件
笔记本电脑
百度
互联网
反病毒
软件
软件
系统软件
多媒体软件
办公软件
网络软件
图像处理软件
系统软件
系统软件
举报
举报原因(必选):
取消确定举报