桥接模式总结:
桥接模式可以取代多层继承的方案,多层继承违背了单一职责原则,复用性较差,类的个数也非常多。桥接模式可以极大的减少子类的个数,从而降低管理和维护的成本
2.桥接模式极大提高了系统的可扩展性,在两个变化维度中任意扩展一个维度,都不需要修改原有的系统,符合开闭原则
package com.imust.bridge;
/**
* 品牌
* @author Zachary (为上帝所心仪的人)
* @date 2017年9月7日
* @project shejimoshi
* @package com.imust.bridge
*/
public interface Brand {
void sale();
}
class Lenovo implements Brand{
@Override
public void sale() {
System.out.println("销售联想电脑");
}
}
class Dell implements Brand{
@Override
public void sale() {
System.out.println("销售戴尔电脑");
}
}
class Shenzhou implements Brand{
@Override
public void sale() {
System.out.println("销售神州电脑");
}
}
package com.imust.bridge;
/**
* 电脑类型维度
* @author Zachary (为上帝所心仪的人)
* @date 2017年9月7日
* @project shejimoshi
* @package com.imust.bridge
*/
public class Computer2 {
protected Brand brand;
public Computer2(Brand b) {
this.brand = b;
}
public void sale(){
brand.sale();
}
}
class Desktop2 extends Computer2{
public Desktop2(Brand b) {
super(b);
}
@Override
public void sale() {
super.sale();
System.out.println("销售台式机");
}
}
class Laptoptop2 extends Computer2{
public Laptoptop2(Brand b) {
super(b);
}
@Override
public void sale() {
super.sale();
System.out.println("销售笔记本");
}
}
package com.imust.bridge;
public class Client {
public static void main(String[] args) {
//销售联想的笔记本电脑
Computer2 c = new Laptoptop2(new Lenovo());
c.sale();
Computer2 c2 = new Desktop2(new Shenzhou());
c2.sale();
}
}