【发布时间】:2015-01-12 18:46:44
【问题描述】:
我有以下 (POD) 结构来表示前端所需的数据。
struct data {
std::string foo;
std::string bar;
int baz;
};
我有两个选择:
class backend_option_one {
//...
public:
std::list<data> get_data() const;
void set_data(std::list<data> data_list);
void update_frontend() // asynchronous changes from the backend
};
v.s.
class backend_option_two {
//...
public:
std::string get_foo() const;
std::string get_bar() const;
int get_baz() const;
void set_foo(std::string& old_foo, std::string& new);
void set_bar(std::string& old_foo, std::string& value);
void set_baz(std::string& old_foo, int& value);
void add(std::string& new_foo);
void update_frontend(); // asynchronous changes from the backend
};
就:可重用性、面向未来和良好的编码实践而言,这是更理想的选择,是否有一种方法比另一种更好的情况?
【问题讨论】:
-
你在和什么交流?
-
这两个选项似乎并不等价,第一个返回
data的列表,而第二个似乎只能处理一个data记录。第二个选项是否缺少一些选择器? -
你要处理什么样的并发?您是否期望其他视图在您使用它时更改数据?您认为需要锁定数据元素吗?
-
@Fozi 是的,他们不见了。在这种情况下, foo 是唯一值,用于标识记录。我会把它添加进去。
-
@Fozi 是的,有并发事件可以改变视图。我已经关注了 MVC,所以这不是这里的问题。
标签: c++ user-interface frontend backend