在说到接口模式之前首先需要提到两个概念,一个是Interface,一个是AbstractClass.
Interface在Java中是为了规定类与类之间交互的行为,限制了彼此交互的方式。实现Interface的类需要实 现其所有方法。所以一般在Interface定义都有粒度的要求,即保证Interface在每次被implements的时候,其定义的所有方法都会被使用。所以,一般而言,接口的定义都应当在需求的基础上越小越好,避免将不同接口的方法硬揉在一个接口中。正如我们看到的,很多接口其实只有一个方法。因为一个类可以实现很多接口,所以,接口的方法少并不会限制类的方法。重要的是保证接口的功能明确,职责单一。这样,在限制类交互行为,明确设计方法才会有所帮助,并且,也将给扩展带来很大的自由,这一点当你的接口实现有所变化时就会体现的相当明显。
AbstractClass即虚拟类,既然是类,自然是在设计是区别与Interface的。它要保证类定义的完整性,符合抽象的规范,并且还要提供扩展。
在设计模式中,作为一个可扩展性高的设计,一般而言一个或几个Interface的实现都需要提供一个Stub作为存根,即实现Interface的一个或几个可以作为公用的方法,而对于其他一些不用或者有变化的方法则只是简单的提供一个空方法体。这个Stub一般就是通过AbstractClass来实现的。
接口模式在实际操作过程中主要体现在两个阶段,两个阶段也体现了两种作用。
[list]
[*]第一个是设计阶段,设计阶段的接口模式主要体现为规范类的交互,为系统提供高的可扩展性。
[*]第二个是系统维护阶段,为存在的系统提供扩展的接口。
[/list]
[size=large]超越普通接口的设计实现:[/size]
[b]1).Adapter模式:[/b][url]http://xwood.iteye.com/blog/1603781[/url]
[b]2).Facade模式[/b]
[b]3).Composite模式[/b]
[b]4).Bridge模式[/b]
Interface在Java中是为了规定类与类之间交互的行为,限制了彼此交互的方式。实现Interface的类需要实 现其所有方法。所以一般在Interface定义都有粒度的要求,即保证Interface在每次被implements的时候,其定义的所有方法都会被使用。所以,一般而言,接口的定义都应当在需求的基础上越小越好,避免将不同接口的方法硬揉在一个接口中。正如我们看到的,很多接口其实只有一个方法。因为一个类可以实现很多接口,所以,接口的方法少并不会限制类的方法。重要的是保证接口的功能明确,职责单一。这样,在限制类交互行为,明确设计方法才会有所帮助,并且,也将给扩展带来很大的自由,这一点当你的接口实现有所变化时就会体现的相当明显。
AbstractClass即虚拟类,既然是类,自然是在设计是区别与Interface的。它要保证类定义的完整性,符合抽象的规范,并且还要提供扩展。
在设计模式中,作为一个可扩展性高的设计,一般而言一个或几个Interface的实现都需要提供一个Stub作为存根,即实现Interface的一个或几个可以作为公用的方法,而对于其他一些不用或者有变化的方法则只是简单的提供一个空方法体。这个Stub一般就是通过AbstractClass来实现的。
接口模式在实际操作过程中主要体现在两个阶段,两个阶段也体现了两种作用。
[list]
[*]第一个是设计阶段,设计阶段的接口模式主要体现为规范类的交互,为系统提供高的可扩展性。
[*]第二个是系统维护阶段,为存在的系统提供扩展的接口。
[/list]
[size=large]超越普通接口的设计实现:[/size]
[b]1).Adapter模式:[/b][url]http://xwood.iteye.com/blog/1603781[/url]
[b]2).Facade模式[/b]
[b]3).Composite模式[/b]
[b]4).Bridge模式[/b]