Demo背景
实现类似于gwt框架的功能,通过java代码来编写界面组件,在将界面组件转换成浏览器可识别的UI元素
设计思路:
代码要实现两部分功能:
1.编写界面组件代码,用java类定义出所需要的界面元素(Button、Label、Panel等)
2.将java类组件进行语义转换,转换成界面引擎可识别的语法(json、html,js等)
接口设计:
界面组件的设计参考awt采用组合模式进行封装
Element是所有类组件的接口,包括单一组件(Button、Label)和容器组件Container
语义转换功能接口为Render
参观者模式使用:
Element和Render是两个相互独立的组件,它们各自封装着自己的功能,现两个组件需要交互,Render需要访问Element来获取其封装的信息
首先在Element中声明accept方法用来表示自身接受Render的访问
实现类似于gwt框架的功能,通过java代码来编写界面组件,在将界面组件转换成浏览器可识别的UI元素
设计思路:
代码要实现两部分功能:
1.编写界面组件代码,用java类定义出所需要的界面元素(Button、Label、Panel等)
2.将java类组件进行语义转换,转换成界面引擎可识别的语法(json、html,js等)
接口设计:
界面组件的设计参考awt采用组合模式进行封装
Element是所有类组件的接口,包括单一组件(Button、Label)和容器组件Container
语义转换功能接口为Render
参观者模式使用:
Element和Render是两个相互独立的组件,它们各自封装着自己的功能,现两个组件需要交互,Render需要访问Element来获取其封装的信息
首先在Element中声明accept方法用来表示自身接受Render的访问
public interface Element {
public void acceptRender(Render render);
}
然后在Render类中声明visit方法用来参观Element
public interface Render {
public void visitElement(Element elt);
}
visitElement方法的执行可通过Element的acceptRender方法来触发
pu