首页 > 其他分享 >设计模式(一)

设计模式(一)

时间:2023-10-31 10:34:19浏览次数:39  
标签:getInstance 对象 SingleInstanceLazy SingleInstanceHungry 设计模式 public

1 设计模式

什么是设计模式?

一个问题通常由n种解法,其中肯定有一种解法是最优的,这个最优的解法被人总结出来了,称之为设计模式

设计模式有20多种,对应20多种软件开发中会遇到的问题。

关于设计模式的学习,主要学什么?

1)解决什么问题?

2)怎么写?

2 单例设计模式

简介:确保一个类只有一个对象;

类别:1)饿汉式单例:拿对象时,对象早就创建好了;

         2)懒汉式单例:拿对象时,才开始创建对象

写法:1)把类的构造器私有;

         2)定义一个类变量记住类的一个对象;

         3)定义一个类方法,返回对象

应用场景和好处:任务管理器、源码Runtime类

/**
 * 饿汉式单例设计模式
 */
public class SingleInstanceHungry {

    /**
     * 2 定义一个类变量记住类的一个对象
     **/
    private static SingleInstanceHungry singleInstanceHungry = new SingleInstanceHungry();

    /**
     * 1 把类的构造器私有化
     **/
    private SingleInstanceHungry(){ }

    /**
     * 3 定义一个类方法,返回对象
     **/
    public static SingleInstanceHungry getInstance(){
        return singleInstanceHungry;
    }
}

/** * 懒汉式单例设计模式 */ public class SingleInstanceLazy { /** * 2 定义一个类变量,用于存储这个类的一个对象 **/ private static SingleInstanceLazy singleInstanceLazy; /** * 1 把类的构造器私有化 **/ private SingleInstanceLazy() { } /** * 3 定义一个类方法,这个方法要保证第一次调用时才创建一个对象,后面调用时都会用这同一个对象返回 **/ public static SingleInstanceLazy getInstance() { if (singleInstanceLazy == null) { singleInstanceLazy = new SingleInstanceLazy(); } return singleInstanceLazy; } } import single.SingleInstanceHungry; import single.SingleInstanceLazy; public class DesignPatternsTest { public static void main(String[] args) { SingleInstanceHungry singleInstanceHungry1 = SingleInstanceHungry.getInstance(); SingleInstanceHungry singleInstanceHungry2 = SingleInstanceHungry.getInstance(); System.out.println(singleInstanceHungry1); System.out.println(singleInstanceHungry2); SingleInstanceLazy singleInstanceLazy1 = SingleInstanceLazy.getInstance(); SingleInstanceLazy singleInstanceLazy2 = SingleInstanceLazy.getInstance(); System.out.println(singleInstanceLazy1); System.out.println(singleInstanceLazy2); } }

标签:getInstance,对象,SingleInstanceLazy,SingleInstanceHungry,设计模式,public
From: https://www.cnblogs.com/daytoy105/p/17799616.html

相关文章

  • 设计模式(十)外观
    一、定义为子系统中的一组接口提供一个一致的入口,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式是一种结构型模式。二、描述包含以下两个角色:1、Facade(外观角色):在客户端可以调用它的方法,在外观角色中可以知道相关的(一个或多个)子系统的功能和责任;在......
  • 设计模式-享元模式
    importjava.nio.channels.Pipe;publicclass享元模式{publicstaticvoidmain(String[]args){pieceFactoryfactory=newpieceFactory();PiecewhitePiece=factory.getPiece(0);PiecewhitePiece1=factory.getPiece(1);Pie......
  • 设计模式—创建型模式之工厂模式
    设计模式—创建型模式之工厂模式工厂模式(FactoryPattern)提供了一种创建对象的最佳方式。我们不必关心对象的创建细节,只需要根据不同情况获取不同产品即可。简单工厂模式比如我们有造车的工厂,来生产车,我们先定义一个抽象车产品://抽象车产品类publicabstractclassAbstract......
  • 设计模式-工厂方法(Factory Method)
    1.定义 定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。2.示例创建一个接口:publicinterfaceShape{voiddraw();}创建接口具体实现类 publicclassSquareimplementsShape{@Overridepublicvoiddraw(){......
  • 设计模式-装饰器模式
    目录设计模式-装饰器模式什么是装饰器设计模式?java示例设计模式-装饰器模式什么是装饰器设计模式?装饰器设计模式(DecoratorPattern)是一种结构型设计模式,它允许你通过将对象包装在一个装饰器类中来动态地扩展其功能。装饰器模式能够在不改变原有对象的情况下,通过添加新的装饰器类......
  • 设计模式实验五
    8u软件设计                 石家庄铁道大学信息学院 实验5:建造者模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解建造者模式的动机,掌握该模式的结构;2、能够利用建造者模式解决实际问题。 [实验任务一]:计算机组装使用建造者模式,完......
  • 设计模式实验四
    软件设计                 石家庄铁道大学信息学院 实验4:抽象工厂模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解抽象工厂模式的动机,掌握该模式的结构;2、能够利用抽象工厂模式解决实际问题。 [实验任务一]:人与肤色使用抽象工厂模......
  • 重学面向对象,体会设计模式
    先上图(学长今晚讲得好激情,就像哈佛大学cs50的老师~~~~)图一让你明白,在Java帝国,你有多么渺小 回忆一下学长讲课的思路~Driver这个类里面封装了很多各种各样的方法,包括接学生回家,包括开车的时速,里面包括了,司机本身的一个职责,以及车的一个功能,但问一个问题,如果今天司机的大巴......
  • 设计模式—创建型模式之原型模式
    设计模式—创建型模式之原型模式原型模式(PrototypePattern)用于创建重复的对象,同时又能保证性能。本体给外部提供一个克隆体进行使用。比如我们做一个SjdwzMybatis,用来操作数据库,从数据库里面查出很多记录,其中很多记录改变很少。每次查数据库,把所有数据都封装一个对象,然后返回......
  • 如何将设计模式责任链模式运用到工作当中
    (文章目录)......