1700475866
HouseCorp houseCorp=new HouseCorp(house);
1700475867
1700475868
//看我怎么挣钱
1700475869
1700475870
houseCorp.makeMoney();
1700475871
1700475872
System.out.println(”\n”);
1700475873
1700475874
//山寨公司生产的产品很多,不过我只要指定产品就成了
1700475875
1700475876
System.out.println(”––-山寨公司是这样运行的––-“);
1700475877
1700475878
ShanZhaiCorp shanZhaiCorp=new ShanZhaiCorp(new Clothes());
1700475879
1700475880
shanZhaiCorp.makeMoney();
1700475881
1700475882
}
1700475883
1700475884
}
1700475885
1700475886
修改后的运行结果如下所示:
1700475887
1700475888
––-房地产公司是这样运行的––-
1700475889
1700475890
生产出的房子是这样的……
1700475891
1700475892
生产出的房子卖出去了……
1700475893
1700475894
房地产公司赚大钱了……
1700475895
1700475896
––-山寨公司是这样运行的––-
1700475897
1700475898
生产出的衣服是这样的……
1700475899
1700475900
生产出的衣服卖出去了……
1700475901
1700475902
我赚钱呀……
1700475903
1700475904
看代码中的黑体部分,就修改了这一条语句就完成了生产产品的转换。那我们深入思考一下,既然万物都是运动的,我现在只有房地产公司和山寨公司,那以后我会不会增加一些其他的公司呢?或者房地产公司会不会对业务进行细化,如分为公寓房公司、别墅公司,以及商业房公司等呢?那我告诉你,会的!绝对会的!但是你发觉没有,这种变化对我们上面的类图来说不会作大的修改,充其量只是扩展:
1700475905
1700475906
❑增加公司,要么继承Corp类,要么继承HouseCorp或ShanZhaiCorp,不用再修改原有的类了。
1700475907
1700475908
❑增加产品,继承Product类,或者继承House类,你要把房子分为公寓房、别墅、商业用房等。
1700475909
1700475910
你唯一要修改的就是Client类。类都增加了,高层模块也需要修改,也就是说Corp类和Product类都可以自由地扩展,而不会对整个应用产生太大的变更,这就是桥梁模式。
1700475911
1700475912
1700475913
1700475914
[
上一页 ]
[ :1.700475866e+09 ]
[
下一页 ]