一、前言
本文为自己的学习记录,记录一下自己在面试中遇到的一些手撕代码(非算法题目),也是自己复习方便
二、设计模式
1、工厂模式
(1)简单工厂
// 抽象产品角色
public interface Product {
void getInfo();
}
// 真实产品A
public class ProductA implements Product {
@Override
public void getInfo() {
System.out.println("I am productA");
}
}
// 真实产品B
public class ProductB implements Product {
@Override
public void getInfo() {
System.out.println("I am productB");
}
}
// 工厂类,顺便在这里进行测试
public class Factory {
private Product product;
public Factory() {
}
public Product getProductA() {
product = new ProductA();
return product;
}
public Product getProductB() {
product = new ProductB();
return product;
}
public static void main(String[] args) {
Factory factory = new Factory();
Product productA = factory.getProductA();
Product productB = factory.getProductB();
productA.getInfo();
productB.getInfo();
}
}
(2)抽象工厂
// 还是使用上面的ProductA和ProductB
// 抽象工厂类
public interface Factory {
Product getProduct();
}
// 真实工厂A
public class ProductAFactory implem