这几天闲着没事,看一下Bridge模式。它是实现对象与行为分离的。做一下小例子与大家分享:,希望能与大家交流。
现定义一个对数据对象操作的接口:
java 代码
- package org.mvc.webtier;
-
- public interface Operator {
- String work(String arg);
- }
-
实现上边的这个接口:
java 代码
- package org.mvc.webtier;
-
- public class Insert implements Operator{
-
- public String work(String arg) {
-
-
- return "insert "+arg;
- }
-
- }package org.mvc.webtier;
-
- public class Update implements Operator {
- public String work(String arg) {
-
-
- return "update " + arg;
- }
- }
-
定义数据对象的抽象类:
java 代码
- package org.mvc.webtier;
-
- public abstract class Table {
- protected Operator impl = null;
-
- public abstract void work();
-
- public Operator getImpl() {
- return impl;
- }
-
- public void setImpl(Operator impl) {
- this.impl = impl;
- }
- }
-
具体的数据对象继承上面的这个抽象类:
java 代码
- package org.mvc.webtier;
-
- public class Table1 extends Table{
-
- @Override
- public void work() {
-
- System.out.println(this.impl.work("Table1"));
- }
-
- }
-
- package org.mvc.webtier;
-
- public class Table2 extends Table{
-
- @Override
- public void work() {
-
- System.out.println(this.impl.work("Table2"));
- }
-
- }
-
根据具体的业务就可以对具体的数据对象进行操作了。
java 代码
- Table tbl1 = new Table1();
- tbl1.setImpl(new Insert());
- tbl1.work();
- tbl1.setImpl(new Update());
- tbl1.work();
-
-
- Table tbl2 = new Table2();
- tbl2.setImpl(new Update());
- tbl2.work();
- tbl2.setImpl(new Insert());
- tbl2.work();
-