1700455613
}
1700455614
1700455615
按照脸蛋、身材、气质都具备才算美女,实现类实现两个接口,如代码清单4-7所示。
1700455616
1700455617
代码清单4-7 最标准的美女
1700455618
1700455619
public class PettyGirl implements IGoodBodyGirl,IGreatTemperamentGirl{
1700455620
1700455621
private String name;
1700455622
1700455623
//美女都有名字
1700455624
1700455625
public PettyGirl(String_name){
1700455626
1700455627
this.name=_name;
1700455628
1700455629
}
1700455630
1700455631
//脸蛋漂亮
1700455632
1700455633
public void goodLooking(){
1700455634
1700455635
System.out.println(this.name+”–脸蛋很漂亮!”);
1700455636
1700455637
}
1700455638
1700455639
//气质要好
1700455640
1700455641
public void greatTemperament(){
1700455642
1700455643
System.out.println(this.name+”–气质非常好!”);
1700455644
1700455645
}
1700455646
1700455647
//身材要好
1700455648
1700455649
public void niceFigure(){
1700455650
1700455651
System.out.println(this.name+”–身材非常棒!”);
1700455652
1700455653
}
1700455654
1700455655
}
1700455656
1700455657
通过这样的重构以后,不管以后是要气质美女还是要外形美女,都可以保持接口的稳定。当然,你可能要说了,以后可能审美观点再发生改变,只有脸蛋好看就是美女,那这个IGoodBody接口还是要修改的呀,确实是,但是设计是有限度的,不能无限地考虑未来的变更情况,否则就会陷入设计的泥潭中而不能自拔。
1700455658
1700455659
以上把一个臃肿的接口变更为两个独立的接口所依赖的原则就是接口隔离原则,让星探AbstractSearcher依赖两个专用的接口比依赖一个综合的接口要灵活。接口是我们设计时对外提供的契约,通过分散定义多个接口,可以预防未来变更的扩散,提高系统的灵活性和可维护性。
1700455660
1700455661
1700455662
[
上一页 ]
[ :1.700455613e+09 ]
[
下一页 ]