参考《设计模式的艺术软件开发人员内功修炼之道》-刘伟 著
实验目的
桥接模式通过对象之间关联的方式,在主对象中可以访问多种关联对象
实验代码
package BridgeMode;
interface DataSource{
public String readData();
}
class DBSource implements DataSource{
@Override
public String readData() {
System.out.println(
"DBSource");
return "DBSource";
}
}
class FileSource implements DataSource{
@Override
public String readData() {
System.out.println(
"FileSource");
return "FileSource";
}
}
class SocketSource implements DataSource{
@Override
public String readData() {
System.out.println(
"SocketSource");
return "SocketSource";
}
}
abstract class FileDealer{
protected DataSource dataSource;
public void setDataSource(DataSource _dataSource){
dataSource = _dataSource;
}
abstract public void StoreToFile();
}
class WordFileDealer extends FileDealer{
@Override
public void StoreToFile() {
String data = dataSource.readData();
System.out.println(
"WordFileDealer");
}
}
class ExcelFileDealer extends FileDealer{
@Override
public void StoreToFile() {
String data = dataSource.readData();
System.out.println(
"ExcelFileDealer");
}
}
class PowerPointerFileDealer extends FileDealer{
@Override
public void StoreToFile() {
String data = dataSource.readData();
System.out.println(
"PowerPointerFileDealer");
}
}
public class BridgeModeTest {
public static void main(String[] args) {
DataSource dataSource =
new DBSource();
FileDealer fileDealer =
new WordFileDealer();
fileDealer.setDataSource(dataSource);
fileDealer.StoreToFile();
}
}
结果输出
DBSource
WordFileDealer
结论
避免多层继承带来的类之间静态绑定,数量过多的弊端符合开闭原则,利于扩展
转载请注明原文地址: https://ju.6miu.com/read-26294.html