《设计模式》讲义,王晓蒙,V0.1
第3章 适配器模式
提出问题
问题描述:访问数据库,抽取并处理数据后以特定格式返回给用户。假设现有系统已有基
础数据工具类 DataTool ,提供 processData() 方法用于从数据库中提取数据,并返回基础
数据对象。如果增加一个新需求,要求提供返回JSON格式数据的功能,应该如何扩展程
序。
public class DataTool implements IDataProcess{
public Data processData(DB db){
Data dd = new DictData();
// 从数据库中抽取和处理数据,返回基础数据对象
return dd;
}
}
public interface IDataProcess {
public Data processData(DB db);
}
扩展一个功能,最直接的方式就是设计实现一个新工具类,专门用于从数据库提取和处理数据,
并返回JSON格式数据。
public class NewDataTool implements INewDataProcess{
public JSONData processData(DB db){
JSONData jd = new JSONData();
// 从数据库中抽取和处理数据,返回JSON数据
return jd;
}
}
public interface INewDataProcess {
public JSONData processData(DB db);
}
这种设计方式代码复用性差,数据库连接、提取和处理代码重复。引出问题:当接口不兼容时,
原系统的代码怎么在新系统中得到复用。
评论0