设计模式--缺省适配器模式

Structural 模式 如何设计物件之间的静态结构,如何完成物件之间的继承、实 现与依赖关系,这关乎着系统设计出来是否健壮(robust):像是易懂、易维护、易修改、耦合度低等等议题。Structural 模式正如其名,其分类下的模式给出了在不同场合下所适用的各种物件关系结构。


很多情况下,一个具体类去实现一个接口,但是又不是需要实现接口中所有的方法,只需要部分方法,但是实现接口的时候,强制实现了所有的方法,这样就导致了这个具体类含有许多空方法.这是一种浪费,也会导致混乱,所以就产生了缺省适配器模式.

下面我们定义一个人接口(IPerson)

[java]  view plain  copy
 print ?
  1. public interface IPerson{  
  2.     String getName() ;  
  3.     void goToSchool() ;  
  4.     void work() ;  
  5.     void eat() ;  
  6. }  

当需要一个学生的具体类时,我们会发现,如果继承IPerson接口的话,那么work()这个方法就必须空着,所以这里我们先定义一个抽象的缺省适配器类实现IPerson接口.

[java]  view plain  copy
 print ?
  1. public abstract class PersonAdapter{  
  2.     public String getName(){} ;  
  3.     public void goToSchool(){} ;  
  4.     public void work(){} ;  
  5.     public void eat() ;  
  6. }  

接下来我们再实现我们具体的学生类(Student)

[java]  view plain  copy
 print ?
  1. public class Student extends PersonAdapter{  
  2.     private String name = null ;  
  3.     public Student(String name){  
  4.         this.name = name ;  
  5.     }  
  6.     public String getName(){  
  7.         return name ;  
  8.     }  
  9.     public void goToSchool(){  
  10.         System.out.println("go to school !") ;  
  11.     }  
  12.     public void eat(){  
  13.         System.out.println("eating") ;  
  14.     }  
  15. }  

下面是类结构图

img



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值