• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
雪飞夏日
博客园    首页    新随笔    联系   管理    订阅  订阅
JS和WebService实现多态
我们知道面向对象就离不开面向对象的三大特性: 封装、继承、多态,那么怎么也用JS实现面向对象的编程呢。那我现在就拿一个简单的小例子来说明一下多态的实现。 我们先建一个抽象的类,然后呢在用几个类来继承这个抽象类,并重写它,我想学过.net 或java 的都知道实现继承重写。

我们知道面向对象就离不开面向对象的三大特性: 封装、继承、多态,那么怎么也用JS实现面向对象的编程呢。那我现在就拿一个简单的小例子来说明一下多态的实现。

我们先建一个抽象的类,然后呢在用几个类来继承这个抽象类,并重写它,我想学过.net 或java 的都知道实现继承重写。

Code
namespace AllAjax001
{
    
public abstract class fourthServer1//抽象类
    {

        
public abstract string resout();
    }

     
public class Class1:fourthServer1//实现类1(继承并重写)
    {
        
public override string resout()
        {
            
return "red";// 我们只返回了一句话就是“red”;

        }
    }

      
public class Class2:fourthServer1//实现类2(继承并重写)
    {

        
public override string resout()
        {
            
return "yellow";
        }
  }

}

那我们怎么样让webservice  来调用 上面那些实现类,并对里面的方法进行返回呢?我们知道我们通过[System.Web.Scipt.Services.GenerateScriptType(typeof(命名空间.实现类名))] 这样我们就能让webService找到并进行处理。注意的是在webservice  方法中我们传的是哪个抽象类,因为我们要通过不同的参数来选择我们要调用哪一个实现类。

        [WebMethod]
        [System.Web.Script.Services.GenerateScriptType(typeof(AllAjax001.Class1))]
        [System.Web.Script.Services.GenerateScriptType(typeof(AllAjax001.Class2))]
        [System.Web.Script.Services.GenerateScriptType(typeof(AllAjax001.Class3))]
        [System.Web.Script.Services.GenerateScriptType(typeof(AllAjax001.Class4))]
 
        public string gMagess(fourthServer1 get)
        {
            return get.resout();  //通过父类我们返回不同的实现类
        }

然后我们在页面上写一个下拉列表框<select id=“color”></select> 我们在里面放上几个值让后我们通过列表框的id 值来获得里面的不同的值

Code
<script language ="javascript" type="text/javascript">
        
function fun() {
            
var ca = new Object();    //将一个变量转成object 类型
            ca.__type = document.getElementById("color").value; // 注意 "__type" 下划线是两个
        
            AllAjax001.fourthServer.gMagess(ca,back); 
// 命名空间。webService名。方法名(参数,回调函数)

        }
        
function back(te) {//就是回调函数 是将我们传过来实现类里面那个值输出在我们的div中的
          
            document.getElementById(
"show").innerHTML = te;
        }
    
</script>

这样我们一个js调用webService就实现了多态,通过我们在页面传入得不同的值,在webService中通过判断来返回不同的 东西。当然我这个例子实在太简单了,大家可以根据这个例子做一个跟数据库判断的小例子,通过我们从数据库查出的不同的值,判断然后将我们要的传入到别的表里。

posted on 2009-07-27 13:53  雪飞夏日  阅读(272)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3