当现有的某个类的接口不能满足客户所需要的接口,需要将这个类的接口转换为客户想要的接口,可以使用适配器模式。这相当于给接口做了一个适配,使这个接口可以在现有的模块内可以使用。
举一个简单的例子,我们国家家用电网提供的是220V交流电,对于台式机而言,主板需要12V直流电,当然不能直接拿交流电来使用啦。所以主机都有一个电源适配器,将220V 交流电 转换成 12V直流电。这个电源适配器就是从中间起到了一个转换的作用。
- public interface UserInfo {
- public String getUserName();
- public String getUserId();
- public Integer getUserAge();
- public String getUserProvince();
- public String getUserCity();
- public String getUserStreet();
- }
- package com.lou.patterns.adapter;
- public interface UserInformation {
- public String getUserName();
- public String getUserId();
- public Integer getUserAge();
- //UserAddredss = province + city + street;
- public String getUserAddress();
- }
- public class UserInfoAdapter implements UserInformation{
- private UserInfo userInfo;
- @Override
- public String getUserName() {
- return userInfo.getUserName();
- }
- @Override
- public String getUserId() {
- return userInfo.getUserId();
- }
- @Override
- public Integer getUserAge() {
- return userInfo.getUserAge();
- }
- @Override
- public String getUserAddress() {
- return userInfo.getUserProvince()+" " + userInfo.getUserCity()+ " " +userInfo.getUserStreet();
- }
- }