目录
一.工厂设计模式
1.1 工厂设计模式的作用
1.2 案例
二.装饰设计模式
2.1 装饰设计模式的作用
2.2 步骤
2.3 案例
public class FactoryPattern {/**定义一个方法,创建对象返回*/public static Computer createComputer(String info){switch (info){case "huawei":Computer c = new Huawei();c.setName("huawei pro 16");c.setPrice(5999);return c;case "mac":Computer c2 = new Mac();c2.setName("MacBook pro");c2.setPrice(11999);return c2;default:return null;}}
}
测试代码:
public class FactoryDemo {public static void main(String[] args) {Computer c1 = FactoryPattern.createComputer("huawei");c1.start();Computer c2 = FactoryPattern.createComputer("mac");c2.start();}
}
//父类代码:
public abstract class InputStream {public abstract int read();public abstract int read(byte[] buffer);
}
//原始类代码:
public class FileInputStream extends InputStream{@Overridepublic int read() {System.out.println("低性能的方式读取了一个字节a");return 97;}@Overridepublic int read(byte[] buffer) {buffer[0] = 97;buffer[1] = 98;buffer[2] = 99;System.out.println("低性能的方式读取了一个字节数组:" + Arrays.toString(buffer));return 3;}
}
//装饰类代码:
public class BufferedInputStream extends InputStream{private InputStream is;public BufferedInputStream(InputStream is){this.is = is;}@Overridepublic int read() {System.out.println("提供8KB的缓冲区,提高读数据性能~~~~");return is.read();}@Overridepublic int read(byte[] buffer) {System.out.println("提供8KB的缓冲区,提高读数据性能~~~~");return is.read(buffer);}
}
//测试类代码:
public class DecoratorPattern {public static void main(String[] args) {InputStream is = new BufferedInputStream(new FileInputStream());System.out.println(is.read());System.out.println(is.read(new byte[3]));}
}
上一篇:SQL优化
下一篇:C语言学习笔记-存储类