Tag: 多态

我怎样才能多态地构造一个数据库?

这可能是一个愚蠢的问题,但我没有什么经验。 我遇到了一个问题,我正在为一家小工厂使用Excel电子表格。 它有一个巨大的产品列表分为家庭。 比喻:卡罗拉,Avensis,Landcruiser =丰田 此外,这些产品还有与之相关的任务列表。 卡罗拉:第一步第二步第三步… 所有产品在前几个阶段即使在不同的家庭中也共享任务。 但有些产品在生产过程中的不同阶段可能是productX中的第6步是productY中的第5步。 但是productX和productY共享1-5。 (所有这一切都是真实的。 我有三个问题。 是否有可能多态地构造一个数据库? 常见的任务可以放在基类中,并获得更具体的(通用的OO)。 如果不是,你可以创build一个无序任务的中央数据库,并给予产品的每个数据库某种优先级,并且他们给这些任务一些命令。 最后的问题是有没有人遇到过这样的问题? 我有一种感觉,必须有一个devise模式。 感觉就像是一个解决scheme,就在我的掌握之外。 编辑1.电子表格暂时是空白的。 工作表是产品名称。 该string – 整数组合是产品编号。 价值将被放置在下面,即时间/小时,产品的数量应在指定的时间[

狡猾的代码嗅觉解决(由于两个单独的库)c + +

我有一个程序,将excel转换为数据,每次读取一个单元格,逐行迭代。 要做到这一点,我一直在使用两个单独的库: ExcelFormat(用于xls) Xlsx I / O 我有一个抽象类的algorithm,并为每个派生类。 我遇到的问题是ExcelFormat和Xlsx I / O不遵循相同的格式(因为它们是单独的库,并不符合相同的基类)。 (注意,我为xlsxio编写了一个包装程序,因为它是程序化的,而且我想要OOfunction) 我想尽可能地将algorithm抽象到基类。 就目前而言,我真正能够做的就是拥有通用的抽象方法Convert(),这非常糟糕,因为这两个函数algorithm非常相似,但是不能简单地遵从统一的接口,因为它们不要共享相同的基础。 这是我有: bool XlsxToData::Convert(const std::string & filePath, std::list<SqlParam*>* params) { FreeXlsx::XlsxBook book(filePath); if (book.IsOpen()) { std::vector<std::string>* sheets = book.GetSheetList(); if (sheets != nullptr) { std::list<SqlParam*> foundParams; for (auto itr : *sheets) { FreeXlsx::XlsxSheet sheet(itr, book); std::map<int, SqlParam*> foundX; int longestWidth = […]