11月 28
终于把DB这一个模块整理出来了,简单的分析一下几个类之间的关系以及其中的设计模式:
类图如下:

sugar DB类图


顺序图如下:
DB 顺序图

从类的模式及其构建一个DBManager的流程来看,这使用了单例模式,而其中是创建哪一个类,则使用桥梁模式来封装。但是在代码中我还看到了一些地方直接使用了DBManager::getInstance()方法来建造(获取)数据库实例,虽然使用上调用DBManagerFactory::getInstance()和DBManager::getInstance()这两个静态函数并无差别,DBManagerFactory::getInstance只是简单的委托给DBManager::getInstance,但是在顺序图流程上就不好解释了。这打乱了整个设计模式的结构。
当然,如果单单说是从速度上解释的话可以理解,使用DBManager::getInstantce可以减少一次函数调用。但这样混乱了整个设计模式,我觉得这代价是不是大了。
希望有高人指点一二,说说其中我忽略和分析错误了的道理。
Defined tags for this entry: , ,

作者 rollenc

| 主要出源 (0)
请对 365 天内更新的文章进行打分
当前分数: 3 of 5 。 2 次打分。 246 次点击
Bookmark SugarOS学习(三)  at del.icio.us Digg SugarOS学习(三) Mixx SugarOS学习(三) Bloglines SugarOS学习(三) Technorati SugarOS学习(三) Fark this: SugarOS学习(三) Bookmark SugarOS学习(三)  at YahooMyWeb Bookmark SugarOS学习(三)  at Furl.net Bookmark SugarOS学习(三)  at reddit.com Bookmark SugarOS学习(三)  at blinklist.com Bookmark SugarOS学习(三)  at Spurl.net Bookmark SugarOS学习(三)  at NewsVine Bookmark SugarOS学习(三)  at Simpy.com Bookmark SugarOS学习(三)  at blogmarks Bookmark SugarOS学习(三)  with wists Bookmark SugarOS学习(三)  at Ma.gnolia.com wong it! Bookmark using any bookmark manager! Stumble It!

0 引用

  1. 没有引用

2 回复

回复显示方式(直线程 | 分线程)
  1. 三马 says:

    第二个图怎么这么小?

    回复 ()

  2. rollenc says:

    不好意思,链接写错了
    修正了。感谢关注

    回复 ()

新增回复


You can use [geshi lang=lang_name [,ln={y|n}]][/lang] tags to embed source code snippets
电子邮件地址将不会被显示,而仅将被用于发送电子邮件通知