解决问题类型
在软件设计与编程中经常会遇到属性数据,当处理属性结构的数据时,程序员必须经常区分叶子结点和树的一个树枝结点。这使得代码变得更加复杂,容易出错。
解决设计思路
允许一致地对待复杂和原始对象的接口,客户类以相同的方式对待单独的对象和一组对象。
具体待解决的问题
使用不同的语言作为问候语,用户选择一个国家,程序显示该国家见面时使用的问候语。一些国家团体由固定的国家组成,如联合国。
UML设计
核心代码
public abstract class WorldOrganization {
public abstract String say();
}
class China extends WorldOrganization{
String GREETINGS="你好,恭喜发财";
@Override
public String say(){return GREETINGS;}
}
class USA extends WorldOrganization{}
class England extends WorldOrganization{}
class UN extends WorldOrganization{
private ArrayList<WorldOrganization> countr

本文探讨了如何使用组合模式来处理属性结构数据,特别是在区分叶子结点和树枝结点时。设计思路是通过一致的接口处理复杂和原始对象,解决在不同语言环境中展示问候语的问题。通过UML设计和核心代码示例,展示了组合模式如何让客户类统一处理单独对象和对象组合,以及其在扩展性和代码复用方面的优点。然而,模式的不足在于难以限制组合中的构件,当构件约束增多时,组合的难度会增加。
2230

被折叠的 条评论
为什么被折叠?



