设计模式(一)单例模式:懒汉式

本文介绍了设计模式中的单例模式,特别是懒汉式单例模式。单例模式是一种创建型设计模式,确保一个类只有一个实例,并提供全局访问点。通过私有构造方法防止外部直接实例化,仅在需要时才创建对象。懒汉式单例的特点是在首次使用时才初始化,以提高效率。文中以酒店管理系统为例,展示了单例模式在实际场景的应用。
摘要由CSDN通过智能技术生成

单例模式

这种类型的设计模式属于创建型模式

这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

目的:避免一个全局使用的对象不停的创建和注销

核心:私有构造方法

原理:因为构造方法是私有的所以在这个类之外不能通过new创建这个类的实例,这个类的实例只能在类的内部调用类私有的构造方法才能创建,只要保证类的内部只创建一个实例就可以实现。(个人理解)

懒汉式

当需要使用这个单例对象时才创建这个对象

案例:酒店管理

功能:查房(显示所有房间以及房间的租客)、入住、退房、退出

酒店类(单例类)

// 酒店类(单例模式:懒汉式)
// 全局只有一个酒店
public class Hotel {
   
    // 酒店单例
    private static Hotel hotel;
    // 房间
    private Room[][] rooms;

    // 公开的获取这个单例的get()方法
    // 懒汉式:当需要这个单例的时候才创建这个单例
    public static Hotel getHotel() {
   
        if (hotel == null) {
   
            hotel = new Hotel();
        }
        return hotel;
    }

    // (重要,核心)私有的构造方法
    private Hotel() {
   
        init();
    }

    // 初始化
    private void init() {
   
        rooms = new Room[5][5];
        for (int i = 0; i < 5; i++) {
   
            for (int j = 0; j < 5; j++) {
   
                rooms[i][j] = new Room((i + 1) * 1000 + j + 1);
            }
        }
    }

    // 查房
    public void queryRooms() {
   
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值