ASAP的设计模式:
插件模式:
软件运行的时候会扫描特定目录下所有的.dll文件,将这些dll加载到主程序中,执行特定的操作,就能将该dll具有的功能加入到主程序中。用户只需要添加额外的.dll就能扩充软件的功能,不需要进行源码的更改,同样的,用户如果想要扩充软件的功能,也只需要按照特定的格式编写dll文件即可。如果扫描不到dll软件也不会崩溃,顶多只是少了部分功能。
工厂模式:
创建工厂类的接口,让程序选择具体的实例来完成任务。这种模式不关心实例对象生成方式的任务执行方式,只关心执行结果。
缓存设计:
当处理很大的数据时,为了操作的流畅性,一般不会将所有的数据一次性读入到程序中,所以会采用缓存的方式,一部分一部分的来读取数据。ASAP的缓存设计方式就是将图片分块,将每一块的数据等级,坐标作为主键存在内存中。这样的好处就是当程序需要那一块数据就先检测这个数据是否已经存在内存中,不存在就读取那块数据。这样的设计模式显著增强了程序的流畅性。
交互设计:
Viewer类接受用户的操作信息,进行一定的初步处理和分类,然后将操作向下传递给执行工具。Viewer类不关心执行操作的具体对象是谁,具体对象会检测该操作是否应该执行,如果不应该由它执行,那么它会忽略这个指令。
软件功能需求:
手动绘制脑轮廓/脑区
利用算法自动获得脑轮廓
软件目前已有功能:
打开文件
关闭文件
保存文件
手动划线
放缩图片
软件的设计模式:
工具类:
InterfaceTool为工具类的接口,实体工具类目前有PolyTool,用于接受并翻译OperateViewer类的操作,并操控划线类PolyItem执行任务(应用ASAP的工厂模式)
图元类:
InterfaceItem为划线类的接口,实体划线类有PolyItem,用于存储数据,执行保存文件和读取文件,执行PolyTool下达的任务,决定记号的具体显示方式。(应用ASAP的工厂模式)
视图类:
OperateViewer类用于接受用户指令,进行一定的处理,然后将指令向下传递,执行放缩图片和切换图片操作,管理数据。(应用ASAP的交互设计)