根据面向对象的设计原则,应该尽量使用组合而不是继承。桥模式将抽象与其实现解耦,使他们可以分别独立地变化,是继承的一种代替方式。
对于两个类之间需要进行关联时,不要直接在一个类的代码中调用另一个类的代码,而是要通过这些设计模式,在两个类之间建立一个类似的缓冲器的类,从而将直接关联的两个类进行解耦,以保证以后当一个类的接口发生变化时不会影响另一个类的使用。
实现类接口的示意代码如下:
public interface Implement {
void operation1();
}
抽象类的示意代码如下:
public abstract class Interface {
Implement impl;
public Interface(Implement impl){
this.impl = impl;
}
public void operation1(){
this.impl.operation1();
}
}
抽象类的继承类的示意代码如下:
public class Interface1 implements Interface {
public Interface1(Implement impl){
super(impl);
}
public void operation1(){
impl.operation1();
}
}
抽象类的另一个继承类:
public class Interface2 implements Interface {
public Interface2(Implement impl){
super(impl);
}
public void operation1(){
impl.operation1();
}
}
实现类的继承类的示意代码如下:
public class Implement1 implements Implement {
public void operation1(){
}
}
实现类的另一个继承类的示意代码如下:
public class Implement1 implements Implement {
public void operation1(){
}
}
销售电脑案例
电脑可分为:台式、笔记本、平板电脑;
还可以分为不同的品牌:戴尔、苹果、联想等;
如何设计类才算合理?
原文地址:http://blog.csdn.net/dream_angel_z/article/details/45479711