用于收集物品的设计模式是什么?

时间:2017-07-19 20:42:31

标签: c++ design-patterns

我试图让这个例子尽可能自然,以使其变得简单。

假设我有一组物品。例如item1,item2,item3,item4等。

目前item由struct:

表示
// only contains data
struct item{
  string name;
  std::vector<string> parts_name;
  std::vector<double> parts_price;
  std::vector<string> item_color;
  ...
};

itemx item1,item2 ...

然后我有一个叫items

的班级
class items{
  public:
  // return name of all items
  vector<string> get_all_item();

  // return price of all parts 
  vector<double> get_all_parts_price();  

 private:
  // hold vector of item
  vector<shared_ptr<item>> list_of_items;

  // name of item and its parts price
  // eg: <item_1_part_1, $1.3>
  // eg: <item_1_part_2, $2.3>
  // eg: <item_2_part_1, $4.3>
  map<string, double>  parts_prices;
};

我目前的项目类的问题是它的增长真的很大, 作为项目的特征增加。

我的解决方案:make struct item包含分配负载的函数 从类项构造项目。

还有其他更好的方式或任何设计模式适用于此类问题吗?

1 个答案:

答案 0 :(得分:1)

很难告诉你如何根据你的输入“设计”你的应用程序 - 我认为你在这里关注的是错误的方面。您的item结构包含向量。这意味着复数。但是,该课程仍被称为item

从这个意义上讲:不要在这里考虑模式。相反,退后一步,仔细看看你打算建模的“真实世界”。你看,对象和类的核心点是构建你正在处理的模型

这里没有答案:仔细查看对象所具有的“真实世界”关系,然后关注创建一个有助于完成工作流程的OO模型实行。

相关问题