2.桥接模式
桥接模式也是针对原本基本无关联的两个类,让他们产生关联而使用的模式。具体的实现方式是类之间的组合,就是类似于上面的适配器模那种一个类的主接口包含另一个类的主接口。
举个例子,电脑有很多类型,如笔记本,台式电脑。也可以有很多牌子,如苹果,联想,等。
如果一味的使用继承会违背单一职责原则导致一个类里有很多其他属性,不方便后期添加和处理。
于是,设计人员便想到,如果把两个起始的类组合在一起,就可以不用继承。
代码实现:
-
brand接口(品牌类) :因为是属性,就将它变成接口
package bridge; public interface brand { public String info(); }
-
computer类
package bridge; public class computer { protected brand bra; 必须设置成protect,这样才能被子类使用 public computer(brand brand){ this.bra=brand; } public String info(){ return bra.info(); } }
-
iphone类
package bridge; public class iphone implements brand{ @Override public String info() { return "苹果"; } }
-
lenovo类
package bridge; public class lenovo implements brand{ @Override public String info() { return "lenovo"; } }ava
-
taishi类
package bridge; public class taishi extends computer{ public taishi(brand brand) { super(brand); } public void infos(){ System.out.println(info()+"台式电脑"); } }
-
测试
package bridge; public class test { public static void main(String[] args) { taishi taishi = new taishi(new iphone()); taishi.infos(); } }
输出了
苹果台式电脑
至此,电脑和品牌桥接成功