这段时间比较空闲,所以就抽出一些时间自己做了一个扫雷的小游戏。期间深有感触,现总结如下:
1、这个是我从设计开始完全采用面向对象思想的程序,锻炼了我面向对象的设计能力。
2、其中对Observer Pattern、Adapter Pattern、Factory Pattern等设计模式进行了应用,加深了对设计模式的理解,也感受到了设计模式带来的好处。
3、熟悉了Java之中Swing的编程模式。
4、理解了面向对象设计法则之中的开放-封闭法则(OCP)的优点。
下面对其中一些感触比较深的地方进行叙述。
开闭法则:
·开闭法则认为我们应该试图是设计出永远也不需要改变的模块。
·我们可以添加新代码来扩展系统的行为。我们不能对已有的代码进行修改。
·符合OCP的模块需要满足两个标准:
1、可扩展,即“对扩展是开放的”(Open for Extension) 模块的行为可以被扩展,以需要满足新的需求。
2、不可改变,即“对更改是封闭的”(Closed for Modification)模块的源代码是不允许进行改动的。
我们如何去做呢?
·抽象(Abstraction)
·多态(Polymorphism)
·继承(Inheritance)
·接口(Interface)
一个软件系统的所有模块不可能都满足OCP,但是我们应该努力最小化这些不满足OCP的模块数量。
开闭法则是OO真正的核心。
符合该法则便意味着最高等级的复用性(reusability)和可维护性(maintainability)。
当时我在考虑做雷点的时候,没有多想就直接考虑swin