工厂模式
简单工厂模式
package com.example.demo.designmode.工厂模式;
interface ICar {
void run();
}
class XiaoMiCar implements ICar {
@Override
public void run() {
System.out.println("小米跑车在跑!");
}
}
class BYDCar implements ICar {
@Override
public void run() {
System.out.println("比亚迪跑车在跑!");
}
}
/**
* 静态工厂
*/
public class StaticFactory {
public static ICar getCar(String carType) {
if (carType.equals("xiaomi")) {
return new XiaoMiCar();
} else if (carType.equals("byd")) {
return new BYDCar();
}
return null;
}
public static void main(String[] args) {
ICar xiaomi = StaticFactory.getCar("xiaomi");
xiaomi.run();
}
}
工厂方法模式
package com.example.demo.designmode.工厂模式;
interface Phone {
public void show();
}
interface PhoneFactory {
public Phone createPhone();
}
class XiaoMiPhone implements Phone {
@Override
public void show() {
System.out.println("This is XiaoMi Phone!");
}
}
class XiaoMiFactory implements PhoneFactory {
@Override
public Phone createPhone() {
System.out.println("Create XiaoMi Phone!");
return new XiaoMiPhone();
}
}
class HuaWeiPhone implements Phone {
@Override
public void show() {
System.out.println("This is HuaWei Phone!");
}
}
class HuaWeiFactory implements PhoneFactory {
@Override
public Phone createPhone() {
System.out.println("Create HuaWei Phone!");
return new HuaWeiPhone();
}
}
public class SimpleFactory {
public static void main(String[] args) {
PhoneFactory xiaomiFactory = new XiaoMiFactory();
xiaomiFactory.createPhone().show();
}
}
抽象工厂模式
。。。