- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)