120 likes | 242 Views
设计模式 在猫科动物信息管理系统 开发中的应用. 作者 王文为 2006.1.4. 系统功能模块. 主要类之间的关系. 数据结构. 存储数据的基本单位是 CElementInfo* pElement 。. class CElementInfo { … … public: Info* m_pInfo; VecEle m_VecChild; };. 将每个元素的指针与它的中文学名建立映射,放在 CDataIni 中的 map 中,便于查找。 std::map<CString, ElementInfo*>. 数据 加载 ——Builder 模式.
E N D
设计模式在猫科动物信息管理系统开发中的应用设计模式在猫科动物信息管理系统开发中的应用 作者 王文为 2006.1.4
数据结构 存储数据的基本单位是CElementInfo* pElement。 class CElementInfo { …… public: Info* m_pInfo; VecEle m_VecChild; }; 将每个元素的指针与它的中文学名建立映射,放在CDataIni中的map中,便于查找。 std::map<CString, ElementInfo*>
数据加载——Builder模式 CDataIni::CDataIni(void) { CreateSubfamily(); CreateGenus(); CreateSpecies(); }
数据加载——Factory Method模式 CSetInfo* CSetCreator::Create(int ConnectType,int SQLType) { CSetInfo* pset=new CSetInfo; pset->SetConnect(DefaultConnect[ConnectType]); pset->SetSQL(DefaultSQL[SQLType]); return pset; }
数据保存——Strategy模式 BOOL CmyXML::Output(int type,CString CName) { if(type==ALLITEMS) …… }
后退/前进——Memento模式 void CMemento::SetState(HTREEITEM hItem) { …… m_statelist->push_back(hItem); …… }
后退/向前——Iterator模式 class CMemento { private: CMyList* m_statelist; …… }
撤销——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; }
结束 谢谢