浏览 1686 次
锁定老帖子 主题:JT框架初探二--桥梁模式的示例
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-04-15
package Jt; public class JtBridge extends JtObject { public static final String JtCLASS_NAME = JtBridge.class.getName(); private static final long serialVersionUID = 1L; protected Object implementor; public JtBridge () { } /** * 设置实现者 */ public void setImplementor (Object implementor) { this.implementor = implementor; } public Object getImplementor () { return (implementor); } /** * 本类的接受消息方法 * 接受到消息直接发送给实现者 * 由实现者进行响应 */ public Object processMessage (Object message) { String msgid = null; JtFactory factory = new JtFactory (); if (implementor == null) { handleError ("JtBridge.process: the implementor attribute needs to be set"); return (null); } /** * * 接受到消息直接发送给实现者 * 由实现者进行响应 */ return (factory.sendMessage (implementor, message)); } } 再看看使用的例子 package Jt.examples.patterns; import Jt.JtBridge; import Jt.JtFactory; import Jt.JtMessage; import Jt.JtObject; import Jt.examples.HelloWorld; import Jt.xml.JtXMLHelper; public class BridgeExample { public BridgeExample () { } public static void main(String[] args) { JtFactory factory = new JtFactory (); JtBridge bridge; JtObject implementor; JtMessage msg; /** *这个类是随意的类 *注意为下面两个改变对象格式的方法用的 *你也可以自己写一个类 */ HelloWorld hello = new HelloWorld (); hello.setGreetingMessage("Hello World ..."); // 创建桥梁模式的类 bridge = (JtBridge) factory.createObject (JtBridge.JtCLASS_NAME); /** *创建一个实现者JtXMLHelper *JtXMLHelper的convertToXML方法可以吧object转换成xml */ implementor = (JtObject) factory.createObject (JtXMLHelper.JtCLASS_NAME); //告诉抽象者 并设置实现者为类implementor bridge.setImplementor(implementor); //创建消息对象 实际等价于implementor.convertToXML 不懂得先看我的博客“JT框架初探一” msg = new JtMessage (JtObject.JtXML_ENCODE); //把hello对象放入消息对象中 用于转换 msg.setMsgContent(hello); //看看打印结果吧 System.out.println ("Java encoding:" + factory.sendMessage (bridge, msg)); /** *告诉抽象者 并设置实现者为类JtFactory 这里 *JtFactory的encodeObject方法可以吧object转换成另一种格式的xml */ bridge.setImplementor(new JtFactory ()); //看看打印结果吧 System.out.println ("Jt encoding:" + factory.sendMessage (bridge, msg)); } } 打印结果: Java encoding: <?xml version="1.0" encoding="UTF-8"?> <Object classname="Jt.examples.HelloWorld"> <greetingMessage><![CDATA[Hello World ...]]></greetingMessage> </Object> Jt encoding: <?xml version="1.0" encoding="UTF-8"?> <java version="1.5.0_11" class="java.beans.XMLDecoder"> <object class="Jt.examples.HelloWorld"> <void property="greetingMessage"> <string>Hello World ...</string> </void> </object> </java> 桥梁模式比较灵活 大家看看jt框架所说的面向模式就是如此应用 现在好了 用什么模式就得先得到一个该模式的对象从jt代码中, 沟通上方便了 不过还是有点不适应 大家自己体会吧 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |