目录
桥接模式将实体类抽象为抽象类,将方法提取为接口
现在电脑有很多中系统,这些系统可以抽象为抽象类。这些系统又有很多文件解析器,文件解析器都有解析方法,就可以把解析方法提取为接口
操作系统抽象类
/**
* @author Dsmash
*/
public abstract class OperatingSys {
// 外部无法访问
protected SysFile file;
public OperatingSys(SysFile file) {
this.file = file;
}
/**
* @param fileName 视频播放器播放文件类型
*/
public abstract void play(String fileName);
}
系统文件解析接口
/**
* @author Dsmash
*/
public interface SysFile {
/**
* @param filename 视频文件解析
*/
void decode(String filename);
}
操作系统方便拓展
Mac操作系统
/**
* 扩展抽象化角色
* @author Dsmash
*/
public class Mac extends OperatingSys{
public Mac(SysFile file) {
super(file);
}
@Override
public void play(String fileName) {
file.decode(fileName);
}
}
Windows操作系统
/**
* @author Dsmash
*/
public class Windows extends OperatingSys{
public Windows(SysFile file) {
super(file);
}
@Override
public void play(String fileName) {
file.decode(fileName);
}
}
各种格式文件
视频文件
/**
* @author Dsmash
* 方便拓展
*/
public class AviFile implements SysFile {
@Override
public void decode(String filename) {
System.out.println("avi 视频文件:"+filename);
}
}
图片文件
/**
* @author Dsmash
* 图片解析拓展类
*/
public class JpgFile implements SysFile {
@Override
public void decode(String filename) {
System.out.println("jpg 图片文件:"+filename);
}
}