跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 为什么设计模式里抽象工厂只负责创建而不负责资源管理?
未分類
27 3 月 2020

为什么设计模式里抽象工厂只负责创建而不负责资源管理?

为什么设计模式里抽象工厂只负责创建而不负责资源管理?

資深大佬 : fyyz 27

抽象工厂只是实现了 CRUD 中的 C,我想实现这样的工厂:

/* C++ */  class abstract_factory { };  template<typename T> class factory:public abstract_factory { public:  std::weak_ptr<T> create();  std::weak_ptr<T> retrieve(const std::uint64_t& product_id);  void destroy(const std::uint64_t& product_id);  private:  std::uint64_t increment_serial_id_ = 0;  std::map<std::uint32_t, std::shared_ptr<T> products_;   std::uint64_t generate_id(); }; 

这种写法直接包含了 CRUD,同时内部也持有了对象。我觉得这种写法明显比只有 create() 的抽象工厂更好啊。为什么很少有人写这种模式呢?

大佬有話說 (5)

  • 資深大佬 : binux

    你不还是要显式 destroy ?

  • 主 資深大佬 : fyyz

    @binux 显示删除,不就是 CRUD 的 D 吗?

  • 資深大佬 : binux

    @fyyz 我是说你都显式 destroy 了还要工厂管理什么资源?难道构建出来的实例自己不知道什么删除自己吗?

  • 主 資深大佬 : fyyz

    明白了,原来这个是享元模式

  • 資深大佬 : TransAM

    所以它叫工厂,而不是容器 /对象池。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具