考虑一个表
student
ID | name | city | province | country | ... | ... |
---|---|---|---|---|---|---|
1 | A | |||||
2 | B | |||||
3 | C | |||||
4 | D | |||||
5 | E |
根据数据库设计范式,里面有冗余数据。应改进为:
student
ID | name | city | ... | ... | ... | ... |
---|---|---|---|---|---|---|
1 | A | New York | ||||
2 | B | New York | ||||
3 | C | Beijing | ||||
4 | D | Beijing | ||||
5 | E | Beijing |
city | province | country |
---|---|---|
New York | ... | ... |
Beijing | ... | ... |
Paris | ... | ... |
... | ... | ... |
在程序设计语言中,这个技术被称为设计模式之享元模式
class Student{
public:
string id;
string name;
int city_idx;
string getCountry();
string getProvince();
string getCity();
};
string Student::getCountry(){
return CityFlyWeightFactory::getCountry(city_idx);
}