动态接口模式
如何为一个类动态地增加一个接口而不需要修改这个类呢?举个简单的例子:对于书这个对象可能要实现多个接口,例如KeyWords接口用于搜索引擎进行关键字搜索,Digest接口用于显示书的摘要信息,ACL用于控制用户对书的访问权限,Persistent接口用于对象的持久化操作,TranscationResource用于事务控制等等。如果都用BookImpl来完成,可能BookImpl会变得异常复杂。如果我们可以在需要的时候声明对象实现了什么接口,问题就简单了许多,例如我们可以这样定义:
DynamicInterface.define("define BookImpl implement Digest using BookDigest");
定义BookImpl使用BookDigest类实现了Digest接口
当我使用BookManager获得Book对象后,就可以使用它的Digest接口了。例如
Digest digest=(Digest)manager.getBook(...);
System.out.println(digest.getDigest());
我们甚至可以在需要的时候取消定义,如:
DynamicInterface.define("undefine BookImpl implement Digest");
我想听听各位对该模式的看法,以及实现该模式的方案。谢谢。