其他语言

本类阅读TOP10

·基于Solaris 开发环境的整体构思
·使用AutoMake轻松生成Makefile
·BCB数据库图像保存技术
·GNU中的Makefile
·射频芯片nRF401天线设计的分析
·iframe 的自适应高度
·BCB之Socket通信
·软件企业如何实施CMM
·入门系列--OpenGL最简单的入门
·WIN95中日志钩子(JournalRecord Hook)的使用

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
面向对象的CFD程序设计实验——[09]

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

上次画出了求解子系统的顺序图,基本明白了各个类的接口的定义。在具体编程的过程中,发现很不顺手。原因是各个类已经设计得比较具体了,并且有一定得耦合度了,要完成这些编程需要每个类逐个仔细琢磨,感觉有点无从下手,目标遥遥无期——我没有做过OO设计和编程,一切都是从这个项目开始的。于是就觉得,还是先把具体的方法空着吧。这样不就等于是做了一些空接口类么?我猛然想起了AMROC中有不少这样的接口类——几乎没有数据成员,只有纯虚函数。万事皆有其存在的意义。于是,我也在现有的类之上构造了它们的抽象基类。又经过一番反复,求解子系统的逆向类图如下所示
solver_base
新加入的有以Base为前缀的四个抽象基类:BaseSolver,BaseIntegrator,BaseNumericalBC和BaseInitialCondition。它们完全定义了顺序图中的调用接口。不过,我没有让BaseSolver包含BaseIntegrator,BaseNumericalBC和BaseInitialCondition,因为我发现只有具体的实现中才涉及到相互调用,而在接口定义时是不会遇到这些东西的。所以我在实现Solver的时候才包含了BaseIntegrator,BaseNumericalBC和BaseInitialCondition。我不知道这样是否合适,但是现在看来似乎是合理的。

程序是编了,编译也通过了,不过还没有测试。时间过得好快呀。如果采用结构化编程,估计现在已经做得差不多了。OO编程就是慢呀。

此外,我初步实现了DataFunction。对于这个数组封装类,我本来是打算利用现成的类库,如Blizt++,A++/P++之类的东西。不过考虑到这些玩意本身也不是很简单,为了把它们嵌入进去,我恐怕还需要钻研一下它们的手册,琢磨一下编译,这些要花不少时间。而我对数组封装的要求不高,所以还是自己做个简单的封装算了。




相关文章

相关软件