上面的抽象是多变的,实现也是多变的,就可以应用桥接模式。
我们再次那数据存储举一个实际的例子。数据存储可以实现为存到文件或是存到,而我们存储时可以选择是本地还是网络上的位置,下面一一道来:
首先是定义数据存储的实现:
//实现public intece ISaveData { void save(Object data);}
然后就是具体的实现:
//具体实现public class SaveToFile implements ISaveData{ @Override public void save(Object data) { System.out.println(data " 存储到文件"); }}//具体实现public class SaveToDB implements ISaveData{ @Override public void save(Object data) { System.out.println(data " 存储到"); }}
然后是抽象,如何存储:
//抽象public abstract class AbstractSave { ISaveData saveData; public AbstractSave(ISaveData saveData){ this.saveData = saveData; } public abstract void save();}
接下来是细化抽象:
//细化抽象public class LocalSave extends AbstractSave{ public LocalSave(ISaveData saveData) { super(saveData); } @Override public void save(Object data) { System.out.print("本地存储:"); saveData.save(data); }}//细化抽象public class NetSave extends AbstractSave{ public NetSave(ISaveData saveData) { super(saveData); } @Override public void save(Object data) { System.out.print("网络存储:"); saveData.save(data); }}
使用:
public class TestUse { public static void main(String args[]){ Object data = "数据"; ISaveData saveDataDb = new SaveToDB(); ISaveData saveDataFile = new SaveToFile(); AbstractSave save; save = new NetSave(saveDataDb); save.save(data); save = new NetSave(saveDataFile); save.save(data); save = new LocalSave(saveDataDb); save.save(data); save = new LocalSave(saveDataFile); save.save(data); }}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-33893-45.html
你说对了
亏了再圈
期待你更好的作品