编程自学指南:java程序设计开发,设计思想开源框架-创建型模式,单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式

java程序设计开发,设计思想开源框架-创建型模式,单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式

创建型模式主要用于对象的创建过程,它可以将对象的创建和使用分离,使得代码更具灵活性、可维护性和可扩展性。常见的创建型模式有单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式。以下是详细的学习笔记:

单例模式(Singleton Pattern)

定义

确保一个类只有一个实例,并提供一个全局访问点来获取这个实例。

核心角色
  • 单例类:负责创建自己的唯一实例,并提供一个静态方法来获取该实例。
实际应用案例

在 Java 中,数据库连接池通常使用单例模式,因为在一个应用程序中,数据库连接池只需要一个实例来管理所有的数据库连接。

// 饿汉式单例模式
class DatabaseConnectionPool {
    private static final DatabaseConnectionPool INSTANCE = new DatabaseConnectionPool();

    private DatabaseConnectionPool() {
        // 初始化数据库连接池
    }

    public static DatabaseConnectionPool getInstance() {
        return INSTANCE;
    }
}
案例详细解析
  • 饿汉式实现:在类加载时就创建了单例实例,保证了线程安全,但可能会造成资源浪费,因为无论是否使用该实例,它都会被创建。
  • 构造函数私有:防止外部类通过 new 关键字创建新的实例。
  • 静态方法获取实例:提供一个静态方法 getInstance() 来获取单例实例。
重点
  • 唯一性:确保系统中只有一个实例。
  • 全局访问:提供一个全局访问点来获取该实例。
  • 线程安全:在多线程环境下,要保证实例的创建和访问是线程安全的。

工厂方法模式(Factory Method Pattern)

定义

定义一个创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类。

核心角色
  • 抽象工厂:定义了创建对象的抽象方法。
  • 具体工厂:实现抽象工厂中的抽象方法,负责创建具体的产品对象。
  • 抽象产品:定义了产品的接口。
  • 具体产品:实现抽象产品接口,是具体的产品对象。
实际应用案例

在游戏开发中,不同类型的敌人需要不同的创建方式,可以使用工厂方法模式来创建敌人。

// 抽象产品:敌人
interface Enemy {
    void attack();
}

// 具体产品:僵尸
class Zombi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zl515035644

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值