I'll explain it later if I have any time.:)
Property System
It’s the UI present for inner DB. In order to avoid hard coding the UI property list, we use the XML configuration file to realize the flexibility of property system.
Questions
- The identification of property items
▪ The items in DB layer are identified by enum
▪ The items in UI layer are identified by integer with the same value as DB layer
- Grouped items and point property
▪ point property is a group of three double property items, and each items’ id is generated through point group id.
▪ Add group key word to XML setting .
- Efficiency
▪ XML file should be parsed only once
▪ One property list is associated with one property builder
▪ If we have many property lists, do we need multi builder factory?
▪ Memory consideration
- Data exchange between UI and DB
▪ The initialization of the property value should be delivered to DB layer, using std::map
▪ The response to UI value change should also be delivered to DB layer, because the DB side knows what to response.
▪ The response to the DB value change should be encapsulated in the UI layer.
- Decouple property system with 3rd part library
▪ Encapsulate the property list control
Constraints
I believe abstract class is a good way to realize constraints of DB and UI.
- DB layer
- UI layer
- XML key words
Architecture
TODO