技术开发 频道

在Web Services方法中使用多态


【IT168技术文档】


  在Web Services方法中,我们往往使用的都是一个具体类型的参数。这个参数一般就是一个数据对象,所有的功能基本上只是为了存放数据。虽然这对于应用来说一般已经足够,我们大量使用了这样的Web Services,不也过得好好的吗?但是,在这一点上实在太不够面向对象了。

  不过,我们到底如何在Web Services方法中运用多态呢?似乎最容易想到的办法就是在Web Services方法里使用接口或者抽象类型的参数,只要将不同的实现或者子类对象作为参数传递给Web Services方法就可以了。作为示例,我们希望看到最简单的东西,那么就使用这个方法吧。

  首先,我们定义一个Employee抽象类:
1 public abstract class Employee 2 { 3 private int _Years; 4 public int Years 5 { 6 get 7 { 8 return this._Years; 9 } 10 set 11 { 12 this._Years = value; 13 } 14 } 15 16 public string RealStatus 17 { 18 get 19 { 20 return this.GetType().Name; 21 } 22 } 23 24 public abstract int CalculateSalary(); 25 }
  Employee抽象类存放了一个员工的工龄,RealStatus属性返回了当前实例真正的类名,并且定义了一个CalculateSalary方法,可以让子类提供不同的实现。

  我们又写了一个Web Services方法CalculateSalary,用于计算一个员工的薪水,并将信息返回。代码如下:
1 [WebMethod] 2 public string CalculateSalary(Employee employee) 3 { 4 return "I'm " + employee.RealStatus + ", my salary is " + employee.CalculateSalary() + "."; 5 }
0
相关文章