标识类型模式
定义一个不包含任何方法的接口,用它仅仅来表示一种抽象类型。所有实现该接口的类意味着属于这种类型。
比如定义一个Food接口,其中不包含任何方法:
public interface Food{}//实现该接口的类都是食物类型
- 1
鱼肉:
public class Fish implements Food{...}
- 1
进食方法:
public void eat(Food food){...}
- 1
进食:
Food fish = new Fish();//Fish实现了Food接口,标识其食物类型
eat(fish);//合法
Book book = new Book();//Book未实现Food接口
eat(book);//编译错误
- 1
- 2
- 3
- 4
所谓标识类型模式就是借助Java编译器来对传给eat()方法的food参数进行语义上的约束。Food接口被称为标识类型接口,这种接口没有任何方法,仅代表一种抽象类型。在JDK中,有如下两个典型的表示类型接口。
- java.io.Serializable接口:实现该接口的类的实例可以被序列化
- java.io.Remote接口:实现该接口的类的实例可以作为远程对象