爱问知识人 爱问教育 医院库

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

首页

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

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

提交回答

全部答案

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

    永***

    2017-07-26 19:37:19

类似问题

换一换
  • 系统软件 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):