1 / 12

设计模式 在猫科动物信息管理系统 开发中的应用

设计模式 在猫科动物信息管理系统 开发中的应用. 作者 王文为 2006.1.4. 系统功能模块. 主要类之间的关系. 数据结构. 存储数据的基本单位是 CElementInfo* pElement 。. class CElementInfo { … … public: Info* m_pInfo; VecEle m_VecChild; };. 将每个元素的指针与它的中文学名建立映射,放在 CDataIni 中的 map 中,便于查找。 std::map<CString, ElementInfo*>. 数据 加载 ——Builder 模式.

brock-diaz
Download Presentation

设计模式 在猫科动物信息管理系统 开发中的应用

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 设计模式在猫科动物信息管理系统开发中的应用设计模式在猫科动物信息管理系统开发中的应用 作者 王文为 2006.1.4

  2. 系统功能模块

  3. 主要类之间的关系

  4. 数据结构 存储数据的基本单位是CElementInfo* pElement。 class CElementInfo { …… public: Info* m_pInfo; VecEle m_VecChild; }; 将每个元素的指针与它的中文学名建立映射,放在CDataIni中的map中,便于查找。 std::map<CString, ElementInfo*>

  5. 数据加载——Builder模式 CDataIni::CDataIni(void) { CreateSubfamily(); CreateGenus(); CreateSpecies(); }

  6. 数据加载——Factory Method模式 CSetInfo* CSetCreator::Create(int ConnectType,int SQLType) { CSetInfo* pset=new CSetInfo; pset->SetConnect(DefaultConnect[ConnectType]); pset->SetSQL(DefaultSQL[SQLType]); return pset; }

  7. 数据保存——Factory Method模式

  8. 数据保存——Strategy模式 BOOL CmyXML::Output(int type,CString CName) { if(type==ALLITEMS) …… }

  9. 后退/前进——Memento模式 void CMemento::SetState(HTREEITEM hItem) { …… m_statelist->push_back(hItem); …… }

  10. 后退/向前——Iterator模式 class CMemento { private: CMyList* m_statelist; …… }

  11. 撤销——Prototype模式 ManageState::ManageState(int ManageBehavior, CElementInfo* pElement, Info* pInfo) {//删除,被删除的元素指针 //添加,添加的元素指针 //修改,修改后的元素指针,修改前的信息 m_ManageBehavior=ManageBehavior; m_pElement=pElement; m_pInfo=new Info; m_pInfo->CName=pInfo->CName; m_pInfo->LName=pInfo->LName; m_pInfo->P_name=pInfo->P_name; }

  12. 结束 谢谢

More Related