package com.itheima.d3_factory_pattern;
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;
}
}
}
package com.itheima.d3_factory_pattern;
public class FactoryDemo {
public static void main(String[] args) {
Computer c1 = FactoryPattern.createComputer("huawei");
c1.start();
Computer c2 = FactoryPattern.createComputer("mac");
c2.start();
}
}
package com.itheima.d3_factory_pattern;
public class Huawei extends Computer{
@Override
public void start() {
System.out.println(getName() + "开机了,展示了华为的菊花图标~~~");
}
}
package com.itheima.d3_factory_pattern;
public class Mac extends Computer{
@Override
public void start() {
System.out.println(getName() + "以非常优雅的方法启动了,展示了一个苹果logo");
}
}
package com.itheima.d3_factory_pattern;
public abstract class Computer {
private String name;
private double price;
public abstract void start();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
package com.itheima.d4_decorator_pattern;
public abstract class InputStream {
public abstract int read();
public abstract int read(byte[] buffer);
}
package com.itheima.d4_decorator_pattern;
import java.util.Arrays;
public class FileInputStream extends InputStream{
@Override
public int read() {
System.out.println("低性能的方式读取了一个字节a");
return 97;
}
@Override
public int read(byte[] buffer) {
buffer[0] = 97;
buffer[1] = 98;
buffer[2] = 99;
System.out.println("低性能的方式读取了一个字节数组:" + Arrays.toString(buffer));
return 0;
}
}
package com.itheima.d4_decorator_pattern;
public class BufferedInputStream extends InputStream{
private InputStream is;
public BufferedInputStream(InputStream is){
this.is = is;
}
@Override
public int read() {
System.out.println("提供8KB的缓冲区,提高读数据性能~~~");
return is.read();
}
@Override
public int read(byte[] buffer) {
System.out.println("提供8KB的缓冲区,提高读数据性能~~~");
return is.read(buffer);
}
}
package com.itheima.d4_decorator_pattern;
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]));
}
}