网站大量收购闲置独家精品文档,联系QQ:2885784924

浅析StarSUDOKU程序.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅析Star SUDOKU程序 Star SUDOKU Version: 0.8.1 beta 26-Sep-2006 作者:关泽文 学号电邮:GuanZewen@126.com 电话 浅析Star SUDOKU程序 1 1. 程序的UML图 3 2. 程序中标识符的命名和注释 4 3. Java语言的文档化注释 4 4. 软件体系结构 4 5. 对类和方法的抽象 4 6. 程序的接口 5 7. 程序的程序包,内部类 5 8. 算法的设计 5 9. 人机交互时易用性,合理性 5 10. 异常的处理 5 11. 程序的扩展性 6 12. 使用设计模式 6 程序的UML图 程序中标识符的命名和注释 就程序的类命名方法,觉得不太好,如:SudokuObserver.java,SudokuGenerator.java,SudokuGrid.java,在程序包net.sourceforge.starsudoku中命名Sudoku的类,好像是没什么必要的,也不能提供有用的信息给别的程序员看。可读性不高。 而程序包中的注释基本上等于没有,程序的可读性比较低,也许,这是个好多人都会学习的程序而不需要使用过多的注释,但是就本人的学习水平而言,这个程序真是写得比较复杂,没有充分的注释使程序难以理解。在注释方面,这程序做得很不够,提高了程序阅读的门槛,大大提高程序更新维护的难度,是极不可取的。 Java语言的文档化注释 文档化注释没有,根本没有使用到,这一点上是值得批评的。 Java语言的文档化注释可以大大提高编写技术文档的速度,为程序的更新贡献大量宝贵的资料,这程序的作者可能根本没有领会到这一点,也不重视自己的程序的日后更新和维护。 软件体系结构 软件的层次结构很分明,持久层,逻辑层,表现层很明显地分开了。持久层以写文件的方式实现了,是net.sourceforge.starsudoku.io包。逻辑层则是程序包net.sourceforge.starsudoku,而表现层就是net.sourceforge.starsudoku.gui,其中表现层中两个主要的类SudokuGuiGrid, SudokuMainFrame.java都继承了接口SudokuObserver。 体系结构很清楚,这是值得学习的。逻辑层分离得好恰当,这样,当持久层发生变化,如使用数据库和保存程序的信息,或其它的形式,逻辑层是根本不用修改。表现层也与逻辑层比较恰当地分享。 对类和方法的抽象 此软件对类和方法的抽象是比较成功的,如逻辑层中的SudokuGenerator.java,SudokuGrid.java,GeneratorMove.java,UndoRedoStack.java等,都恰到好处地表达了一种职责,符合Single Responsibility Principle要要求。方法的设置也恰到好处,是值得学习的。 但对于SudokuMainFrame.java的设计,觉得还是有商榷的地方,这是一个显示介面的类,这个类占了程序的半壁江山,实在是设计得太大了,各个图标的显示都硬编码在这个页面,扩展性不是太强,可读是极差的。设计的Layout又过于死板,如果修改一下布局,相信好多代码要重写。这点严重影响了程序的重用性。 表现层的灵活性不高,这使得用户的个性化要求好难实现,整个程序也就不太人性化。当用户使用的分辩率是800*600时,因为显示的界面高度比屏幕还要高,在本人的机器上使用些分辩率时就显示不全。这样就严重影响用户的操作。也使程序的易用性降低,而要修改这个显示,是要修改大量的代码的。 程序的接口 程序在SudokuObserver.java设计了一个接口,接口有一个操作updateCellChange,用于改变当前介面的布局。继承这个接口的类是SudokuGuiGrid和SudokuMainFrame,本人觉得这样的设计作用不大,虽然勉强可以说是Single Choice Principle的体现,但实现上,这有多大的意义了,在程序中,本人并没有发现,翻了一遍程序,居然没有找到SudokuGuiGrid类的updateCellChange方法的使用,从这一点,说明程序设计的接口作用其实很小,也许说,没什么用的。 一个程序做完后,有些功能没用到也是正常的,可以作为以后扩展的功能,但一个接口就一个方法,而继承这个接口的程序编写这个方法后就没有用过。这有点说不过去。 程序的程序包,内部类 在体系结构的划分中,按不同的层次对程序进行划分,分了三个程序包,使得层次非常明显。 在SudokuGuiGrid中设计了内部类,这样,只有SudokuGuiGrid可以使用这个类,很好地保护了这个类,控制这个类的可使用范围。而Sudok

文档评论(0)

docindoc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档