摘要:设计模式的运用是很多软件开发者为了解决某些特定问题所采用的, 合理运用设计模式可以帮助开发者简单快捷的解决问题。研发人员在军用软件的开发过程中, 运用设计模式可以有效提升软件系统的拓展性及维护性。本文就设计模式在军用软件开发中的运用进行分析, 通过了解设计模式的特点及作用, 探索合理使用设计模式的方法, 进而让军用软件的开发更加效率。
关键词:设计模式; 软件开发; 军用软件;
设计模式在软件研发领域中的运用早在1995年就被提出。在无数研发者的验证下, 设计模式可以很好的解决一些特定的问题, 来提高开发软件的效率。通普通软件中运用设计模式一样, 对于军用软件的开发一样适用, 不管采用哪个面向对象程序设计语言, 都能够在设计模式的基础上产生代码和设计。
一、设计模式简述
设计模式是经过软件开发者多年经验的总结而得来的, 可以帮助设计人员在软件开发中解决一般性的问题, 而且是可以帮助软件开发中的代码易于理解, 加强了可靠性。在软件开发工程中, 设计模式无疑是基石一样的存在, 每种模式的运用都可以帮助开发人员解决一些重复性的问题和一些核心问题。创建型的设计模式可以帮开发者以更高的效率进行创建对象, 比如单例模式、原型模式等。行为型模式针对的是行为方面的问题, 目的是提升对象间的协作。比如观察者模式等。
二、在军用软件开发的过程中存在的问题
军用软件的开发并不是那么容易的, 在开发的过程中往往会遇许许多多的问题。比较常见的有:一是计算机内存运用方面不够重视, 一些新进研究者往往不注意内存回收问题, 认为泄露内存没有什么影响, 然而事实上, 在软件长期运行的过程中, 很有可能会导致系统运行缓慢, 更严重的是出现死机状态;二是代码质量有待提高, 许多开发人员编写的代码存在单个类功能复杂;全局便利使用不规范等问题, 这些小的问题可能没有什么实质性的影响, 但会让软件体系出现整体性结构混乱、代码过于庞大, 而且极不利于后期维护工作。还有一些隐患性的问题日常并不会显现, 但长时间运行时就很有可能突出出现, 使得软件的测试更加困难。
不过经过分析, 我们可以发现, 许多问题都是由于缺乏经验所导致的, 因此, 如果要想解决上述问题, 可以在军用软件开发中引入自带经验性能的设计模式, 让许多问题都可以迎刃而解。
三、设计模式在军用软件开发中的应用
3.1单例模式的使用
军用软件系统有很多需要进行读取、写入的含有软件运行所需参数的配置文件, 不同的面向对象都设置了相应的配置方式。在开发软件的时候, 可以把需要动词进行访问的配置文件封装在一个类中, 以节省资源。同时, 对于经常使用的全局变量, 可以进行在多个文件中的全局变量编写, 只需一个命令就可以进行多个调用。但是, 却给软件调试人员及负责后期维护的人员带来了麻烦。为了解决这类问题, 单例模式有着非常大的优势和便利。单例模式当中可以确保一个类只对应一个实例, 并且可以支持全局访问。这样既免除了编写的繁杂也减少了内存的浪费, 还能够在系统内设定能够进行全局访问的访问点, 从而达到资源共享的访问目的, 对于军事软件的开发是非常有利的。
3.2观察者模式的适用
军用软件对于军事作战及指挥等都发挥着举足轻重的作用, 通常一个指令可能会引起多个相关事项的发生。比如在指挥类软件系统中, 会根据上级下发的信息和指令, 系统会紧跟着展开一连串的响应:提示已收信息、记录收到的信息、标注接收的信息等等。这种软件开发可以引入观察者模式, 因为观察者模式是一个可以一对多的依赖关系, 一个对象的改变可以自动引发所有依赖于它的对象的改变。观察者模式能够很好的处理抽象耦合及动态联动等相关信息, 对于军用软件的开发用处也非常的大。
3.3组合模式的作用
军用软件日常所需处理的数据无疑是庞大的, 比如编制数据, 对于部队来说, 可以利用软件进行部队级别、番号、名词等基本信息的记录, 还要把层级关系、隶属关系正确的衔接起来。就层级关系而言好比金字塔或树形结构, 一个上级机构可由多个下级单位组成, 下级单位又有多个分支等等。这种结构的处理如果不恰当会造成许多不必要的信息混乱, 甚至影响部队的管理。而组合模式就是针对这类型的结构, 它的应用可以让软件客户端不再进行对象的区分, 只需要采用一种统一的操作方式便可, 极大的简化了客户端的操作流程, 对于内里对象的管理也非常方便。
四、结语
设计模式可以说是软件编程和开发的"福音"了, 它的出现帮助了开发者解决了许多类型的问题, 既是前人经验的总结和精华, 也是软件开发理论不断完善的体现。军用软件有着其严格的规程和标准, 其开发者也应当根据部队的实际情况进行实时调整, 以便于设计模式更好的应用到军用软件开发领域当中。
参考文献
[1]陈臣, 王斌著。研磨设计模式[M].北京:清华大学出版社, 2011
[2]贾延明, 张永涛。抽象工厂设计模式在MIS中的应用。计算机系统应用, 2011, 20 (1) :205~207