适用条件:每一个功能独立,互不干涉
效果:实现代码的封闭开放原则,代码的复用性(复用性:二进制层面的复用)
总结:添加新功能时不用在源码上重新修改,增加了可扩展性
实例代码:
//实现一个根据用户国籍选择语言的功能
普通方案:
enum Contury{
english,
china,
amarica // 更改
}
public class GetWord(){
public Contury con;
public void getword(){
if(con == contury.english){
//...................
}
else if(con == contury.china){
//..............
}
else if(con == contury.amarica){ // 更改
//............................
}
}
}
设计模式方案
public abstuct class contury{
public abstruct void getword();
}
public class english : contury{
public void getword(){
//..............
}
}
public class china : contury{
public void getword(){
//...............
}
}