image.png
image.png
package com.zhs.design.bridge.demo2.db;
public interface DataBase {
String output(String fileName);
}
--------------------------------------------------------------
public class MySqlDB implements DataBase {
@Override
public String output(String fileName) {
return "MySqlDB:"+fileName;
}
}
--------------------------------------------------------------
public class OracleDB implements DataBase {
@Override
public String output(String fileName) {
return "OracleDB:"+fileName;
}
}
--------------------------------------------------------------
public class PostgreDB implements DataBase {
@Override
public String output(String fileName) {
return "PostgreDB:"+fileName;
}
}
import com.zhs.design.bridge.demo2.db.DataBase;
public abstract class AbstractFileTool {
protected DataBase dataBase;
public AbstractFileTool(DataBase dataBase) {
this.dataBase = dataBase;
}
public abstract String parseFile(String fileName);
}
--------------------------------------------------------------
public class PdfTool extends AbstractFileTool {
public PdfTool(DataBase dataBase) {
super(dataBase);
}
@Override
public String parseFile(String fileName) {
return dataBase.output(fileName)+".pdf";
}
}
--------------------------------------------------------------
public class TxtTool extends AbstractFileTool {
public TxtTool(DataBase dataBase) {
super(dataBase);
}
@Override
public String parseFile(String fileName) {
return dataBase.output(fileName)+".txt";
}
}
--------------------------------------------------------------
public class XmlTool extends AbstractFileTool {
public XmlTool(DataBase dataBase) {
super(dataBase);
}
@Override
public String parseFile(String fileName) {
return dataBase.output(fileName)+".xml";
}
}
public class Main {
public static void main(String[] args) {
PdfTool tool = new PdfTool(new MySqlDB());
String s = tool.parseFile("人员");
System.out.println(s);
}
}
网友评论