java设计模式:02-创建型设计模式-概览

创建型模式(Creational Patterns)

定义

创建型模式(Creational Patterns)主要用于处理对象创建的机制,旨在以适当的方式创建对象。这些模式的目的是将对象的创建过程与系统的其他部分分离,以提高系统的灵活性和可扩展性。通过使用创建型模式,可以使系统在创建对象时更加灵活,减少耦合,提高代码的可维护性。

1. 单例模式 (Singleton Pattern)

定义:确保一个类只有一个实例,并提供一个全局访问点。
详细释义:单例模式通过确保某个类只有一个实例存在,避免了在整个应用程序中多次创建该类的实例。这个实例通常通过一个静态方法访问,它负责检查实例是否已存在,如果不存在,则创建一个新的实例。如果已经存在,则返回这个实例。

public class Singleton {
    private static Singleton instance;

    private Singleton() {}

    public static Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

2. 原型模式 (Prototype Pattern)

定义:通过复制现有对象来创建新对象。
详细释义:原型模式使用现有的对象作为蓝图,通过复制这些对象来生成新的实例。这种模式适用于创建对象成本高昂或复杂的情况下,通过克隆现有对象可以节省创建新对象的开销。

public class Prototype implements Cloneable {
    private String name;

    public Prototype(String name) {
        this.name = name;
    }

    public Object clone() {
        try {
            return super.clone();
        } catch (CloneNotSupportedException e) {
            return null;
        }
    }

    public String getName() {
        return name;
    }
}

3. 工厂方法模式 (Factory Method Pattern)

定义:定义一个创建对象的接口,但让子类决定实例化哪个类。
详细释义:工厂方法模式通过定义一个接口来创建对象,由子类决定具体实例化哪个类。这种模式使得类的实例化延迟到子类进行,从而实现了创建对象的灵活性和可扩展性。

public abstract class Creator {
    public abstract Product factoryMethod();

    public void anOperation() {
        Product product = factoryMethod();
        // 处理产品
    }
}

public class ConcreteCreator extends Creator {
    public Product factoryMethod() {
        return new ConcreteProduct();
    }
}

4. 抽象工厂模式 (Abstract Factory Pattern)

定义:提供一个接口来创建一系列相关或依赖的对象,而无需指定它们的具体类。
详细释义:抽象工厂模式通过定义一个创建相关对象的接口,来实现一系列相关对象的创建,而不需要知道具体类是什么。这种模式通常用于创建一组相关或依赖的对象,确保它们的一致性。

public interface AbstractFactory {
    ProductA createProductA();
    ProductB createProductB();
}

public class ConcreteFactory1 implements AbstractFactory {
    public ProductA createProductA() {
        return new ProductA1();
    }

    public ProductB createProductB() {
        return new ProductB1();
    }
}

5. 建造者模式 (Builder Pattern)

定义:将一个复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。
详细释义:建造者模式通过将复杂对象的构建过程与表示分离,使得同样的构建过程可以创建不同的表示。这种模式通常用于构建复杂的对象,如带有多个部分的对象,建造者模式可以分步骤创建对象,并在最后一步返回最终的对象。

public class Product {
    private String part1;
    private String part2;

    public void setPart1(String part1) {
        this.part1 = part1;
    }

    public void setPart2(String part2) {
        this.part2 = part2;
    }
}

public abstract class Builder {
    protected Product product = new Product();

    public abstract void buildPart1();
    public abstract void buildPart2();

    public Product getResult() {
        return product;
    }
}

public class ConcreteBuilder extends Builder {
    public void buildPart1() {
        product.setPart1("Part1");
    }

    public void buildPart2() {
        product.setPart2("Part2");
    }
}

public class Director {
    private Builder builder;

    public Director(Builder builder) {
        this.builder = builder;
    }

    public void construct() {
        builder.buildPart1();
        builder.buildPart2();
    }
}

通过使用这些创建型模式,开发者可以更加灵活和高效地管理对象的创建过程,提高系统的可维护性和可扩展性。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值