六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 35|回复: 0

GreenTea 简介系列 -

[复制链接]

升级  20%

2

主题

2

主题

2

主题

童生

Rank: 1

积分
10
 楼主| 发表于 2013-1-23 02:11:00 | 显示全部楼层 |阅读模式
 
前面发布的概览有点冗杂,不够直观,所以这次来点感性的吧。还是老习惯,先写个“Hello World”。完成这类任务只需要编写两个文件,无需任何配置。




先来写服务类,下面的代码实在是太平淡无奇了,几乎不需要解释。


package com.xt.gt.demo.service;


import com.xt.core.service.IService;


public class HelloService implements IService {


    public HelloService() {
    }


    public void sayHello(String name) {
        System.out.println("Hello:" + name);
    }
}


所有服务都需要实现“IService” 接口,这是一个声明接口,不需要实现其任何方法。


下面来画界面。如果你喜欢用DreamWeaver, 没问题!我画界面多数用Notepad++,偶尔用Kompozer,都是免费的!
 
<html><head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type"><title>Hello World</title>

<script type="text/javascript" src="../js/boot.js"></script>

<script>
//
动态加载CSS 文件
Loader.importCSS();
//
动态加载JS 文件
Loader.importJS();

</script>

</head>

<body>
您的名字: <input id="name" value="World" />
<input type='button' value="
提交" onclick='sayHello()' />
</body>
<script>
    function sayHello() {
        var helloService = ServiceFactory.getService('com.xt.gt.demo.service.HelloService');
        var name = jQuery('#name').val(); //
读取输入域的值
        helloService.sayHello(name);

    }

</script>
</html>



需要关注的是两行代码:
第一行:var helloService = ServiceFactory.getService('com.xt.gt.demo.service.HelloService');
相当于实例化一个服务类的实例; 类名可以使用简写方式,后续文章中再介绍。
最后一行:helloService.sayHello(name); 调用服务器端的“sayHello”方法。
你查看一下输出控制台,应该已经有“Hello:World”输出了。
 


我想你应该已经从中看出端倪,这样写代码是不是很简单呢?HTML 页面是不是更容易维护呢?服务类是不是更容易测试和复用?动态和静态,表现层和业务逻辑层是不是截然分开呢?如果我重新设计一个 Swing 客户端或者 Flex 客户端,服务类是不是就可以不必重写了?网络传输量是不是很小了?


当然,这种方式不能满足所有的需求!Perl 有个哲学,易者易为之,难者可为之。我们不能因为 10% 的特殊性,让 90% 的常用操作都增加复杂性。
 
 
演示文件可从此处下载
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表