Java 设计模式 适配器模式

本文通过一个具体的适配器模式实例介绍了如何解决现有类接口不匹配的问题。通过将UserInfo接口转换为UserInformation接口,实现了不同接口间的适配,类似于电源适配器的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 当现有的某个类的接口不能满足客户所需要的接口,需要将这个类的接口转换为客户想要的接口,可以使用适配器模式。这相当于给接口做了一个适配,使这个接口可以在现有的模块内可以使用。

           举一个简单的例子,我们国家家用电网提供的是220V交流电,对于台式机而言,主板需要12V直流电,当然不能直接拿交流电来使用啦。所以主机都有一个电源适配器,将220V 交流电 转换成 12V直流电。这个电源适配器就是从中间起到了一个转换的作用。


  2. public interface UserInfo {  
  3.   
  4.     public String getUserName();  
  5.       
  6.     public String getUserId();  
  7.       
  8.     public Integer getUserAge();  
  9.       
  10.     public String getUserProvince();  
  11.       
  12.     public String getUserCity();  
  13.       
  14.     public String getUserStreet();  
  15.       

  1. }  
    1. package com.lou.patterns.adapter;  
    2.   
    3. public interface UserInformation {  
    4.   
    5.     public String getUserName();  
    6.       
    7.     public String getUserId();  
    8.       
    9.     public Integer getUserAge();  
    10.     //UserAddredss = province + city + street;   
    11.     public String getUserAddress();  
    12.       
    13. }  
    1. public class UserInfoAdapter implements UserInformation{  
    2.   
    3.     private UserInfo userInfo;  
    4.   
    5.     @Override  
    6.     public String getUserName() {  
    7.         return userInfo.getUserName();  
    8.     }  
    9.   
    10.     @Override  
    11.     public String getUserId() {  
    12.         return userInfo.getUserId();  
    13.     }  
    14.   
    15.     @Override  
    16.     public Integer getUserAge() {  
    17.         return userInfo.getUserAge();  
    18.     }  
    19.   
    20.     @Override  
    21.     public String getUserAddress() {  
    22.         return userInfo.getUserProvince()+" " + userInfo.getUserCity()+ " " +userInfo.getUserStreet();  
    23.     }  
    24. }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值