嘿,各位 Java 大侠们!今天咱要来聊聊 Java 世界里超厉害的工厂模式。这就好比是在 Java 的江湖中,有一把神秘的武器,能让你的代码变得更加酷炫、高效。准备好了吗?让我们一起踏上工厂模式的奇妙之旅吧!
一、初级工厂模式:小试牛刀
想象一下,你正在打造一个游戏世界,里面有各种不同的角色。在没有工厂模式的时候,每次你想要创建一个新角色,都得手动去实例化这个角色类,就像在杂乱的工具箱里翻找特定的工具一样,麻烦得很。
但是有了初级工厂模式,那就不一样啦!初级工厂就像是一个小小的魔法工坊,你只需要告诉它你想要什么,它就会给你变出相应的角色。
比如,你有一个Shape接口,有Circle(圆形)和Rectangle(矩形)两个实现类。这时候,初级工厂就可以登场了。
interface Shape {
void draw();
}
class Circle implements Shape {
@Override
public void draw() {
System.out.println("画一个圆");
}
}
class Rectangle implements Shape {
@Override
public void draw() {
System.out.println("画一个矩形");
}
}
class ShapeFactory {
public Shape createShape(String shapeType) {
if (shapeType.equalsIgnoreCase("circle")) {
return new Circle();
} else if (shapeType.equalsIgnoreCase("rectangle")) {
return new Rectangle();
} else {
return null;
}
}
}
有了这个初级工厂,你想要画圆形或者矩形的时候,就可以轻松地调用工厂方法啦。
public class Main {
public static void main(String[] args) {
ShapeFactory factory = new ShapeFactory();
Shape circle = factory.createShape("circle");
circle.draw();
Shape rectangle = factory.createShape("rectangle");
rectangle.draw();
}
}
初级工厂模式就像是你的第一个魔法小助手,虽然功能不是特别强大,但已经能让你的代码变得整洁不少啦!
二、中级工厂模式:渐入佳境
当你在 Java 的江湖中闯荡了一段时间后,初级工厂模式可能就不能满足你的需求了。这时候,中级工厂模式闪亮登场!
中级工厂模式就像是一个更高级的魔法工坊,它可以根据不同的条件,创建出更加复杂的对象。
比如说,我们现在有不同类型的汽车,有经济型汽车和豪华型汽车。每种汽车都有不同的配置和价格。
interface Car {
void drive();
}
class EconomyCar implements Car {
@Override
public void drive() {
System.out.println("开着经济型汽车,省钱又环保!");
}
}
class LuxuryCar implements Car {
@Override
public void drive() {
System.out.println("开着豪华型汽车,享受奢华之旅!");
}
}
class CarFactory {
public Car createCar(String carType) {
if (carType.equalsIgnoreCase("economy")) {
return new EconomyCar();
} else if (carType.equalsIgnoreCase("luxury")) {
return new LuxuryCar();
} else {
return null;
}
}
}
现在,如果你想要一辆汽车,只需要告诉工厂你想要的类型,工厂就会为你打造出一辆合适的汽车。
public class Main {
public static void main(String[] args) {
CarFactory factory = new CarFactory();
Car economyCar = factory.createCar("economy");
economyCar.drive();
Car luxuryCar = factory.createCar("luxury");
luxuryCar.drive();
}
}
中级工厂模式让你的代码更加灵活,就像一个聪明的工匠,能够根据你的要求打造出各种不同的宝贝。
三、高级工厂模式:大神登场
当你成为 Java 江湖中的高手时,高级工厂模式就是你的终极武器啦!高级工厂模式就像是一个超级魔法工坊,它可以创建出更加复杂、更加灵活的对象。
比如说,我们现在有一个电子产品工厂,这个工厂可以生产手机、平板电脑和笔记本电脑。每种产品都有不同的品牌和型号。
interface ElectronicProduct {
void use();
}
class Phone implements ElectronicProduct {
@Override
public void use() {
System.out.println("用手机打电话、玩游戏!");
}
}
class Tablet implements ElectronicProduct {
@Override
public void use() {
System.out.println("用平板电脑看电影、阅读!");
}
}
class Laptop implements ElectronicProduct {
@Override
public void use() {
System.out.println("用笔记本电脑办公、学习!");
}
}
abstract class ElectronicFactory {
public abstract ElectronicProduct createProduct();
}
class PhoneFactory extends ElectronicFactory {
@Override
public ElectronicProduct createProduct() {
return new Phone();
}
}
class TabletFactory extends ElectronicFactory {
@Override
public ElectronicProduct createProduct() {
return new Tablet();
}
}
class LaptopFactory extends ElectronicFactory {
@Override
public ElectronicProduct createProduct() {
return new Laptop();
}
}
现在,如果你想要一个电子产品,只需要选择相应的工厂,工厂就会为你生产出你想要的产品。
public class Main {
public static void main(String[] args) {
ElectronicFactory phoneFactory = new PhoneFactory();
ElectronicProduct phone = phoneFactory.createProduct();
phone.use();
ElectronicFactory tabletFactory = new TabletFactory();
ElectronicProduct tablet = tabletFactory.createProduct();
tablet.use();
ElectronicFactory laptopFactory = new LaptopFactory();
ElectronicProduct laptop = laptopFactory.createProduct();
laptop.use();
}
}
高级工厂模式就像是一个魔法大师,能够创造出各种神奇的东西。它让你的代码更加灵活、可维护,就像一个精心打造的城堡,坚不可摧。
好啦,各位 Java 大侠们,希望你们在 Java 的江湖中,好好运用工厂模式这把强大的武器,创造出更多精彩的代码世界!加油哦!