`
gulufather
  • 浏览: 16868 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

JT框架初探二--桥梁模式的示例

阅读更多
先看看jt对于桥梁模式的源码 JtBridge
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代码中,
沟通上方便了 不过还是有点不适应 大家自己体会吧
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics