![End to End GUI Development with Qt5](https://wfqqreader-1252317822.image.myqcloud.com/cover/196/36699196/b_36699196.jpg)
上QQ阅读APP看书,第一时间看更新
Object hierarchy
Most real-world applications represent data in a hierarchical or relational manner, with the data rationalized into discrete objects. There is often a central "root" object, which parents several other child objects, either as singular objects or as a collection. Each discrete object has its own set of data items that can be any number of types. The key principles we want to cover are as listed:
- A range of data types (string, integer, datetime) and an enumerated value
- Object hierarchy
- Multiple single child entities of the same type
- Collections of entities
Balancing these goals with simplicity, the data diagram we will work toward is as follows:
![](https://epubservercos.yuewen.com/7E0B13/19470385501524806/epubprivate/OEBPS/Images/d1bc3993-75ef-4e2b-abac-922f1a1aef65.png?sign=1739017385-7kvf0UKCM90eMdjpq4zVYSY0QNPSfYWq-0-6bb1b9706b89a1217a6a562dbab3abc9)
The purpose of each of these models is described in the following table:
![](https://epubservercos.yuewen.com/7E0B13/19470385501524806/epubprivate/OEBPS/Images/003.jpg?sign=1739017385-be0X1rolUeZPKxXBGiaHn1dYXIfNNfGI-0-0d36b024a8b30ea3620ef887e3f1fd4a)
Another perfectly valid approach would be to aggregate the addresses into a collection, much like we have done with our contacts, but I want to demonstrate using the same type of object (Address) in multiple properties.
With the high-level design in place, we are now in a position to write our classes. However, before we start on our data entities, let’s take a look at the data items.