单例模式还是静态类

  什么时候使用单例模式,什么时候采用平台类方式提供静态对象呢?

  首先讲一下什么是和单例模式,

  首先,这个类在逻辑上面就是一个;只有一个实例;比如主席,全国只有一个,那么就可以设计为单例;

  其次,符合单例的逻辑后,判断一下当构造的一个类的时候,不需要外部通过构造参数的形式注入外部模块的时候,就可以使用单例模式。比如对于一个布莱尼茨方式的算法的封装,其内部的状态可以完全依赖于函数的签名(参数),那么可以是单例模式;因为内部依赖于外部的内容,最好是通过构造参数传入,而不要在其内部直接和外部模块发生关系;这种是因为测试角度会比较复杂,内部处理也会复杂,边界不清晰。

  然后讲一下通过Platform方式,提供静态的get/set函数,在static块中将所有的对象进行构造,也可以实现单例效果;而且开发效率增加,因为不需要记住类名,通过“.”的方式就可以找到对应的对象。但是这种方式语义没有单例模式.instance(),getInstance()清晰,因为Platform.XXX的方式无法让调用者明晰这是单例对象,除非约定。

时间: 2024-10-29 05:14:39

单例模式还是静态类的相关文章

java中的单例模式与静态类

单例模式与静态类(一个类,所有方法为静态方法)是另一个非常有趣的问题,在<Java中有关单例模式的面试问题>博文中露掉了,由于单例模式和静态类都具有良好的访问性,它们之间有许多相似之处,例如,两者可以直接使用而无须创建对象,都可提交唯一实例,在一个非常高的高度上看起来它们都为是用于同样的任务.由于它们具有较多的相似性,面试官常常会问一些类似为神马使用单例模式替换静态方法?你能使用静态类替换单例模式吗?Java中单例模式与静态的区别有那些?等这样的问题,为回答这些问题,记住他们单例模式和静态方法

设计模式-由浅到深的单例模式

前言:说起单例模式,可能大家都熟悉,可以说是设计模式中出现频率最高的一个,为了彻底弄清单例,在这里我将说明何为单例,单例模式的演变,已经和静态类之间的区别等. 1:概念 何为单例,就是在一个应用程序中只能有一个实例,就是保证对象只能被new一次. 2:懒汉模式 懒汉我觉得这个名字很形象,就是很懒,所以别的对象加载,它就不加载,你调用我的时候我在加载.比喻hibernate中也有懒模式.ok我们开始吧 2.1:非线程安全 一天小明去面试,面试官说,你给我写个单例模式,小明一想这实在太简单了不暇思索

设计模式学习-单例模式

1.定义 一个类有且仅有一个实例,并且自行实例化向整个系统提供 2.类图 3.代码示例 网上最多有8中实现方式,其中包括了很多非线程安全的实现.我觉得没有必要.这里提供单例模式的两种实用实现,均为线程安全,这里推荐第一种实现,即实现了线程安全,又实现了懒加载 package com.zhaoyangwoo.singleton; /** * Created by john on 16/4/28. */ public class Singleton { private Singleton() { }

设计模式之单例模式——Singleton

                    设计模式之单例模式--Singleton 设计意图: 保证类仅有一个实例,并且可以供应用程序全局使用.为了保证这一点,就需要这个类自己创建自己的对象,并且对外有公开的调用方法.而且,别的类不能实例化它,所以构造方法要设置为私有的. 单例模式的要点 一是某个类只能有一个实例: 二是它必须自行创建这个实例: 三是它必须自行向整个系统提供这个实例. 例如: 有一个"单例对象",而"客户甲"."客户乙" 和&quo

Java单例模式(Singleton)以及实现《转载》

一. 什么是单例模式 因程序需要,有时我们只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计. 二. 单例模式的特点 1. 单例模式只能有一个实例. 2. 单例类必须创建自己的唯一实例. 3. 单例类必须向其他对象提供这一实例. 三. 单例模式VS静态类 在知道了什么是单例模式后,我想你一定会想到静态类,"既然只使用一个对象,为何不干脆使用静态类?",这里我会将单例模式和静态类进行一个比较. 1. 单例可以继承和被继承,方法可以被override,而静态方

【朝花夕拾】设计模式之单例模式

单例模式简介 单例模式是GOF 23个设计模式中最简单的模式了,它提供了一种创建唯一对象的最佳实现,注意此处的简单只是表述和意图很简单,但是实现起来,尤其是实现一个优美的单例模式却没有那么简单. 单例模式归根结底就是要确保一个类只有一个实例,并提供一个全局方式来访问该实例.具体而言,这种模式涉及到一个类,并由这个类创建自己的对象,同时确保只有单个对象被创建,并提供唯一一种方式来访问该对象的实例. 在现实生活中,单例的场景有很多,比如一夫一妻制(当然不道德的除外),比如一个部门只有一个领导等等.

【设计模式】创建型模式之单例模式(三)

单例模式 单例模式,是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例的特殊类.通过单例模式可以保证系统中,应用该模式的一个类只有一个实例.即一个类只有一个对象实例. 简单的理解:保证这一个类仅有一个实例,并提供一个访问它的全局访问点. 通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象.一个最好的办法就是,让类自身负责保存它的唯一实例.这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法. 实现思路 将该类的构造方法定义为私有方法,这样其

C++ 与设计模式学习(其一)

记得曾经一年前,听到同学再说设计模式,当时觉得不怎么重要,所以就没有去系统的学习,这一放,就是一年,直到前段时间,面试了一个阿里巴巴的职位,要我谈谈对于设计模式的看法. 之后就好好了看了一些文章,好好的体会了一番! 现在将自己的心得好好的分享一下吧!(由于设计模式内容比较多,以及设计模式的六大原则,后续都会陆续的更新!) 1. 单例模式(单件模式):单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例单例模式.单例模式只应在有真正的“单一实例”的需求时才可使用. 举个栗子:

【Java】设计模型-五种单例模型

一. 什么是单例模式 只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计. 单例模式的主要作用是保证在Java程序中,某个类只有一个实例存在. 单例模式有很多好处,它能够避免实例对象的重复创建,不仅可以减少每次创建对象的时间开销,还可以节约内存空间: 能够避免由于操作多个实例导致的逻辑错误.如果一个对象有可能贯穿整个应用程序,而且起到了全局统一管理控制的作用,那么单例模式也许是一个值得考虑的选择. 二. 单例模式的特点 1. 单例模式只能有一个实例. 2. 单例类必