将抽象部分和实现部分分离,使它们都可以独立变化。
也就是说,当系统有多角度分类,且每个分类都有可能变化时可以使用这个模式。
举个栗子,手机可以按品牌分类,也可以按功能分类,且品牌和功能之间属于“聚合”关系,即“品牌包含功能,而功能不属于品牌”:
1.功能抽象类;
2.具体功能类;
3.品牌抽象类,维护一个功能类的变量;
4.具体品牌类,调用功能类;
这样即使增加功能或者增加品牌都可以很灵活。
将抽象部分和实现部分分离,使它们都可以独立变化。
也就是说,当系统有多角度分类,且每个分类都有可能变化时可以使用这个模式。
举个栗子,手机可以按品牌分类,也可以按功能分类,且品牌和功能之间属于“聚合”关系,即“品牌包含功能,而功能不属于品牌”:
1.功能抽象类;
2.具体功能类;
3.品牌抽象类,维护一个功能类的变量;
4.具体品牌类,调用功能类;
这样即使增加功能或者增加品牌都可以很灵活。