| Java面向对象程序设计之接口应用 |
|
| 来源:PConline 作者: 加入时间:2006-12-8 访问次数:114 [大 中 小] |
|
public interface RandomColor { int red = Math.random() * 255; int green = Math.random() * 255; int blue = Math.random() * 255; }
其中red、green和blue的值会在第一次被访问时建立,然后保持不变。
三、用接口来定义基本数据结构 在设计一套软件系统的初期,我们可以用接口来对一些基本数据元素的特性来进行一些描述,再根据需要进行不同的实现。请大家看看下面这个例子:
public interface User { int getAge(); String getName(); String getPassword(); }
public class XMLUser implements User { // 这里用XML技术实现User接口中的方法 public int getAge() { ... } public String getName() { ... } public String getPassword() { ... } }
public abstract class UserFactory { public static UserFactory getUserFactory() { return new XMLUserFactory(); }
public User getUser(String name); public User getAdmin(); public User createUser(String name, String password, int age); public void addUser(User user); public void delUser(User user); }
public class XMLUserFactory extends UserFactory { // 这里用XML技术实现的UserFactory的抽象方法 }
在这个例子中,我们定义了一个接口User和一个抽象类UserFactory。然后我们用XML技术实现这两个类。可以看出,我们只需要从用UserFactory的getUserFactory()就可以得到一个UserFactory的实例,而不用去考虑这个实例的具体实现方法。通过UserFactory的这个实例我们还可以直接得到User的实例,也不用去考具体的实现方法。
如果我们决定用JDBC技术来实现User和UserFactory,我们只需要按上面的形式实现JDBCUser和JDBCUserFactory就行了。然后把UserFactory中的getUserFactory方法修改一下就可以改变了它们的实现方法。而我们已经写好的调用UserFactory和User的部分不需要做任何修改。
这是用接口来定义数据结构的一个简单的例子,在实际应用中还有很多灵活的使用方法,大家需要在学习过程中不断的去体会。
四、理解分布式应用的原理
目前有很多软件项目都使用了分布式的技术。Java 有多种支持分布式应用的技术,早期用的比较多的有 RMI、CORBA 等技术,而现在 EJB 技术更为流行一些。但这些技术不管怎么发展,其实都是以接口为基础的。
以远程方法调用 RMI(Remote Method Invocation)为例。在编写 RMI 应用时,我们需要做两件最基本的事,首先要定义一个接口,这个接口要继承 java.rmi.Remote 接口,这个接口中应该包含你要从远端调用的方法名。接下来就是写一个类来实现这个接口中的方法。例如:
public interface Product extends java.rmi.Remote { String getName() throws java.rmi.RemoteException; }
public class ProductImpl implements Product {
|
|
|
|
|
|