`
pf_miles
  • 浏览: 134206 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

《超右脑英语学习软件》杀入决赛

阅读更多

上周就获悉我和一位学弟做的东软杯的比赛项目已经晋级决赛,于这周二晚上进行决赛。由于我要考试,所以没办法去给学弟助阵,只是对软件的结构写点介绍性的文字,帮助他到时候上台讲解。

其实这个东西有多么烂的表现层我们心理都很清楚,但为什么能进决赛?说明——别人的比我们更烂!!哈哈~废话不多说了,不管有多烂,毕竟自己曾经花时间做过的东西,就留作纪念吧,要说维护的话其实也难——我没多少时间再去帮他维护了...这里把我为他明天写的东西贴上来留作纪念吧,我很少写那么多字,我也讨厌写那么多文字,不容易,所以一定要贴出来留个纪念:

软件结构示意图:

 

1)  软件结构简介:本软件采用分层结构设计,自顶向下分为表现层、逻辑层、服务层和数据层。数据层负责组织软件中用到的数据,采用xml文件格式存储;服务层提供了对底层数据的存取的基本功能,是上面一层(逻辑层)获得数据的唯一通道,仿DAO模式构建;再上面一层的逻辑层是整个软件功能实现的基础,它提供了一系列与软件主要功能相关的类来实现主要功能,如生成试题、播放音乐、为试题打分等,上面的表现层将调用逻辑层的类来构成界面;最上面一层就是表现层了,采用Java Swing GUI做成的用户界面。

2)  可拆卸的表现层:其中,表现层需要调用逻辑层里定义的各种功能,但它并不是简单地直接调用。这里运用了Façade[fesa:d]设计模式将逻辑层中各类的与主要功能相关的方法汇总、组织了起来,所以整个表现层和整个逻辑层都只通过这个仅有的Façade模式实现类联系了起来,实现了松散耦合。界面的大规模改动并不会影响到逻辑功能的实现,这方便了今后对界面的改进。不仅如此,这个Façade模式的实现类还为我们的软件带来另一种可能的便利:更换表现层。也就是说,如果我们今后打算做一个B/S架构的类似软件的话,只需要把Swing的表现层拆掉,换上基于JSP技术的表现层即可,这种方便可拆卸的表现层设计能增加软件各部分重用的可能。

3)  面向接口的设计:各层之间的耦合基本上全部通过接口,也就是说上面一层对下面一层的“了解”只是接口而已,方便下面一层对上面一层隐藏具体实现。例如,数据层中DataLoader接口的实现类是用来操作底层数据的,但上面一层(服务层)只通过DataLoader接口和数据层耦合,DataLoader的具体实现完全不知晓。也就是说若今后打算改用数据库来存储软件的数据的话,只需要再编写一个支持数据库操作的DataLoader实现类,再通过修改配置文件将其依赖注入到服务层即可,而服务层本身的代码不需要任何改动,和先前使用xml存储时的行为完全一样。这方便了数据的移植,进一步增加了可重用性。若再要切换回xml文件存储方式的话也只需要改改配置文件。

4)  Xml文件存储数据:选用xml文件对数据进行存储是因为xml文件本身是纯文本文件,占用空间不算大,但比一般的纯文本文件优越的地方是xml文件能方便地描述数据的存储结构,其描述数据存储结构的能力更接近数据库,使得软件能够直接从中读取有一定组织结构的数据。比如阅读题的数据分为题目名、文章、五个问题以及每个问题的四个选项,软件利用Java标准库中的xml操作相关的API能够直接而准确地得到任何一道阅读题的完整数据,并封装成相应的传值对象交给逻辑层处理,非常方便。若采用二进制文件存数据的话,虽然节省空间一点,但会增加设计存储结构的工作量,增加存取操作的代码量,也给今后的维护工作增加了难度。利用xml的这些优势,到目前为止,本软件已经毫不费力地收录了四级词库、六级词库、研究生词库共计8000多个单词;高质量交响乐及alpha波乐16首;3D图片、静态图片等60张;四六级短文十余篇。而在今后的扩展过程中将远远不止这些。

5)  引入Spring框架:由于面向接口的设计与工厂模式的结合能产生出各层之间低耦合度的优秀架构,而Spring框架正是一个强大的工厂模式实现,用它来管理我们的服务层、数据层的类,并且利用它提供的依赖注入功能为各层类中的接口注入了具体实现类,也就是说代码中没有具体实现类的影子,完全实现了面向接口编程的目标。这样做有利于今后的扩展及代码的重构,使大部分的维护工作只通过增加实现类和修改配置文件即可完成,不需要对既有的类进行更改。

分享到:
评论

相关推荐

    专为中国人写的超右脑英语学习法

    专为中国人写的超右脑英语学习法,右脑学习法

    七田真-超右脑英语学习法

    针对传统英语学习的弊端,国际著名右脑开发专家七田真博士[2]开发出一套全新的极速唤醒右脑训练体系,让你在不知不觉中进入右脑工作状态,学会自由操控右脑,数百倍提高学习效率,最大限度发挥右脑能力。

    超右脑英语学习法·txt

    很不错,不同于以往的英语学习方法。只要你坚持下来,你的英语肯定行。

    超右脑英语学习法.rar

    激发对英语学习的兴趣的良好读本

    超右脑英语学习法 你看过没有

    英语学习法帮助你迅速掌握英语,通过它你可以不通过英语语法就能掌握,快让我上传吧,好让我下载,右脑英语学习很棒呢英语学习法帮助你迅速掌握英语,通过它你可以不通过英语语法就能掌握,快让我上传吧,好让我下载...

    超右脑英语学习

    ### 超右脑英语学习法关键知识点解析 #### 一、英语学习面临的挑战与现状 - **背景分析**:随着全球化进程加快,英语已成为国际交流的重要工具之一。据研究显示,约40%的企业在招聘时将英语能力作为重要考量标准之...

    超右脑英语学习法---加强英语能力的好方法

    超右脑英语学习法是一种强调充分利用大脑右半球潜能来提升英语能力的方法。通常,左脑被认为是处理逻辑、语言和分析任务的中心,而右脑则掌管图像、直觉和情感。在语言学习中,很多人误以为左脑是主导,但实际上,...

    超右脑记忆 英语学习法 照相记忆

    标题中的“超右脑记忆 英语学习法 照相记忆”揭示了这个主题的核心——一种利用大脑右半球潜能的高效英语学习方法,特别是强调了“照相记忆”技术。照相记忆,也称为“全息记忆”,是指能够像相机一样瞬间捕获并保留...

    七田真《超右脑照相记忆法》.doc

    他认为右脑记忆是人类大脑中的一种超能力,可以帮助人们快速记忆和学习各种信息。通过右脑记忆,人们可以快速吸收和记忆大量信息,提高学习和记忆能力。 在本书的第一页,七田真先生讲述了右脑记忆的奇异学习回路。...

    超右脑英语学习法

    超右脑英语学习法是一种利用人类大脑潜能,特别是右脑的图像、联想和直觉能力来提高英语学习效率的方法。这种方法强调的是通过非线性、直观和富有创意的方式来理解和记忆英语,与传统的左脑主导的逻辑和分析学习方式...

    专为中国人写的超右脑开发训练pdf

    根据提供的文件信息,我们可以确定这篇文档主要讨论的是针对中国人群设计的超右脑开发训练内容。超右脑开发训练强调的是通过一系列方法和技术来激活和强化右脑的功能,从而提高个人的记忆力、创造力、想象力以及直觉...

    超右脑快速英语单词形象记忆法小学英语单词右脑记忆.ppt

    超右脑快速英语单词形象记忆法是一种创新的学习策略,尤其适用于小学生学习英语单词。这种方法主要利用右脑的图像处理能力和联想能力,将抽象的字母转化为具象的图像,以提高记忆效率。 一、图像转换方法 1. 字母...

    专为中国人写的超右脑开发训练.pdf

    专为中国人写的超右脑开发训练.pdf 附书签

    曼陀罗图训练--右脑训练软件

    如果紧盯着曼陀罗图看10秒钟,然后闭上眼睛,就能够在想象里面栩栩如生地再现曼陀罗的颜色和形状,这就证明你的右脑想象能力已经被开启了.如果继续做这种练习的话,很自然地就能开发出你的右脑想象能力. 曼陀罗图...

    七田真超右脑照相记忆的一点心得参考.doc

    《七田真超右脑照相记忆的一点心得参考》是一本关于右脑记忆和学习方法的书籍,作者通过实践经验总结了右脑记忆的要点和学习方法。 首先,作者提到右脑记忆的重要性,右脑能快速处理大量信息,而左脑则是逐步处理...

    超右脑训练手册

    超右脑训练手册.pdf

    超右脑快速记忆方法.docx

    超右脑快速记忆方法是一种利用人类大脑潜能,特别是右脑的形象化、联想和情感记忆功能,来提升学习效率和记忆力的技巧。右脑是大脑的一部分,主要负责图像、直觉、情绪、空间感知和创造性思维等功能,而左脑则处理...

    水煮新版标准日本语初级下册-超右脑学日语

    9【独特的水煮超右脑外语学习法】,让你领会潜意识下的外语奇迹。 10【完全与新版中日交流标准日本语教材同步】,让你学以致用,迅速提高学习成绩。注册版还有新版标准日本语全部课文MP3和讲座光盘等。 11【我们的...

    超右脑图像记忆单词的方法和基本技巧.pdf

    总之,超右脑图像记忆单词的方法通过创新的图像转换和联接技术,让单词记忆变得更为直观和有趣,有助于提升学习效率,尤其适合那些在记忆单词方面感到困扰的学习者。通过不断实践和完善,这种方法可以帮助学习者建立...

    超右脑照相记忆训练.pdf

    《超右脑照相记忆训练》是一本旨在帮助读者开发右脑照相记忆能力的训练手册。照相记忆,也称为“图像记忆”,是指能够快速捕捉并长久保持大量信息的能力,类似于相机拍摄瞬间的图像。右脑是负责图像、直觉、情感和...

Global site tag (gtag.js) - Google Analytics