继续整理记录这段时间来的收获,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用!
public abstract class AbstractSkin { public abstract void display();
}
public class defaultSkin extends AbstractSkin{ @Override public void display() { System.out.println("默认皮肤"); }
}
public class mySkin extends AbstractSkin{ @Override public void display() { System.out.println("我的皮肤"); }
}
public class souGouInput { public AbstractSkin skin; public void setSkin(AbstractSkin skin) { this.skin = skin; } public void display(){ skin.display(); }
}
public static void main(String[] args) {
// 创建对象 souGouInput souGouInput = new souGouInput();
// 创建皮肤对象
// defaultSkin defaultSkin = new defaultSkin(); mySkin mySkin = new mySkin();
// 加载皮肤
// souGouInput.setSkin(defaultSkin); souGouInput.setSkin(mySkin);
// 使用皮肤,更改皮肤不需要改皮肤代码,只需要额外创建派生皮肤并加载进去即可souGouInput.display(); }
public interface Quadrilateral { double getLength(); double getWidth();
}
public class Rectangle implements Quadrilateral
{ private double length; private double width; public void setLength(double length) { this.length = length; } public void setWidth(double width) { this.width = width; } @Override public double getLength() { return length; } @Override public double getWidth() { return width; }
}
public class Square implements Quadrilateral{ private double side; public double getSide() { return side; } public void setSide(double side) { this.side = side; } @Override public double getLength() { return side; } @Override public double getWidth() { return side; }
}
public class test { public static void main(String[] args) {
// 创建长方形对象 Rectangle r = new Rectangle(); r.setLength(20); r.setWidth(10);
// 调用扩宽 resize(r); printMessage(r); } // 扩宽 public static void resize(Rectangle r) {
// 若长比宽大,使宽增长 while(r.getLength() > r.getWidth()) { r.setWidth(r.getWidth()+1); } } public static void printMessage(Quadrilateral q) { System.out.println(q.getLength()); System.out.println(q.getWidth()); }
}
public interface CPU {
// 运行CPU public void run();
}
public class InterlCPU implements CPU
{ @Override public void run() { System.out.println("使用IntelCPU "); }
}
public interface Memory { public void save();
}
public class KingStonMemory implements Memory{ @Override public void save() { System.out.println("使用金士顿内存条"); }
}
public interface HardDisk {
// 存储数据 public void save(String data); public String get();
}
public class XiShuHardDisk implements HardDisk{ @Override public void save(String data) { System.out.println("使用西数硬盘存储数据为:"+data); } @Override public String get() { System.out.println("从西数硬盘获取数据"); return "数据"; }
}
public class Computer { public CPU cpu; public Memory memory; public HardDisk hardDisk; public CPU getCpu() { return cpu; } public void setCpu(CPU cpu) { this.cpu = cpu; } public Memory getMemory() { return memory; } public void setMemory(Memory memory) { this.memory = memory; } public HardDisk getHardDisk() { return hardDisk; } public void setHardDisk(HardDisk hardDisk) { this.hardDisk = hardDisk; }
// 运行计算机 public void run() { System.out.println("运行计算机"); String data = hardDisk.get(); System.out.println("从硬盘获取数据为:" + data); cpu.run(); memory.save(); }
}
public class test { public static void main(String[] args) {
// 创建组件对象 HardDisk hardDisk = new XiShuHardDisk(); CPU cpu = new InterlCPU(); Memory memory = new KingStonMemory();
// 创建计算机对象 Computer computer = new Computer();
// 组装 computer.setCpu(cpu); computer.setHardDisk(hardDisk); computer.setMemory(memory);
// 运行 computer.run(); }
}