就我所理解,所谓设计模式,就是集众多优点于一身的最优解决方案。简单的说就是解决某一类问题的最行之有效的方法。java语言中过共有23中设计模式。
所谓单例模式,就是保证一个类中只有一个对象。其具体步骤如下:
(1)禁止其他程序建立对象:将构造函数私有化
(2)为让其他程序访问该对象,在本类中自定义对象:在类中创建对象
(3)为使其他程序访问本类对象,则对外提供访问方法
饿汉式:在一初始化时就新建对象。
class Single{
private Single ( ) { }
private static final Single s = new Single();
public static Single getInstance() {
return s;
}
}
懒汉式:延时加载
class Single {
private Single ( ) { }
private static Single s = null;
public static Single getInstance(){
if (s==null){
s = new Single();
}
return s;
}
}
在懒汉式设计模式的使用时,并没有初始化新建对象,而是赋为null,那么在调用方法时,传入一个A,进行判断,若不为null,则新建对象,否则返回 A。若再传入一个B,判断不为null,又新建一个对象,那么此时,该类中就存在两个对象,不能保证对象的唯一性。所以,为保证安全,要对存入的数据进行 限制:加锁。
加锁有两种方式(对于这个情况):在函数中加锁和在方法中加入同步代码块。在函数中加锁比较低效,所以使用在方法中加入同步代码块,再加入一个判断,双重判断可以解决低效的问题。
class Single {
private Single ( ) { }
private static Single s = null;
public static Single getInstance(){
if (s == null)
//同步代码块
synchronized (Single.class) {
if ( s==null ){
s = new Single();
}
}
return s;
}
}
分享到:
相关推荐
### 黑马程序员入学Java精华总结 #### 一、Java概述与基础知识 1. **何为编程?** - 编程是指通过编写计算机能够理解的指令来解决问题或完成特定任务的过程。这些指令通常被组织成算法,并使用某种编程语言实现。...
最后,为了提高代码的效率和可维护性,讲义可能还会涉及一些设计模式和最佳实践,比如单例模式用于保证通讯录类在整个应用程序中只有一个实例,工厂模式用于生成不同类型的联系人对象,以及异常处理机制来捕获和处理...
7. **设计模式**:常见的设计模式如单例、工厂、观察者、装饰者、适配器、代理等,面试中常用来考察你的代码设计能力。 8. **JVM**:了解内存模型(堆、栈、方法区、本地方法栈),垃圾回收机制(GC),类加载机制...
9. **设计模式** - 单例模式:了解懒汉式、饿汉式、双重检查锁定等单例实现方式。 - 工厂模式:简单工厂、工厂方法和抽象工厂模式的应用场景。 - 适配器模式、装饰器模式、观察者模式等在实际开发中的应用。 10....
《.Net黑马程序员视频之超市收银系统》学习资源提供了深入了解和实践.NET技术在构建超市收银系统中的应用。此项目旨在帮助初学者通过实际操作掌握.NET框架的基础知识,包括但不限于C#编程语言、Windows Forms应用...
讲义会涵盖常见的设计模式,如工厂模式、单例模式、观察者模式、装饰器模式等,让读者了解如何在实际项目中有效地应用这些模式,提高代码的可读性和可维护性。 总的来说,《黑马扫地僧C/C++\数据结构\算法\设计模式...
Java面试宝典是Java程序员求职面试的重要参考资料,它涵盖了Java编程语言的核心概念、高级特性、设计模式、并发处理、框架应用、数据库交互等多个方面。以下将详细解析这些关键知识点: 1. **Java基础**:面试中,...
Java是一种广泛使用的面向对象的编程语言,而设计模式则是软件工程中解决常见问题的经验总结,是程序员在实践中形成的最佳实践。这份"根据《JAVA与设计模式》整理的笔记及示例代码"涵盖了Java语言和设计模式的核心...
### 黑马程序员入学Java知识 #### Java概述与基础知识 1. **何为编程?** - 编程是通过特定的计算机语言来编写指令,让计算机能够执行一系列任务的过程。 2. **Java语言概述,历史、特点** - Java是一种广泛...
6. **设计模式**:工厂模式、单例模式、观察者模式、装饰器模式等23种设计模式是面试中的常见话题,理解其应用场景和优缺点。 7. **Spring框架**:Spring的核心特性如依赖注入(DI)、面向切面编程(AOP),以及...
设计模式是软件开发中的重要概念,书中可能会讲解常见的23种设计模式,如单例、工厂、观察者、装饰者、代理、适配器、建造者等,并通过实际案例解析它们在Java中的实现。 数据库操作部分,会涉及到SQL语言基础、...
11. **设计模式**:介绍常见的设计模式,如单例、工厂、观察者、装饰器等,以及它们在实际项目中的应用。 这个Java加强课程对于初学者来说,可以巩固基础,对于有一定经验的开发者,则能提升其在实际开发中的问题...
9. **设计模式**:学习常见的设计模式,如单例模式、工厂模式、建造者模式、装饰器模式、观察者模式等,并能灵活运用到实际项目中。 10. **框架应用**:重点介绍Spring框架,包括IoC容器、AOP(面向切面编程)、MVC...
设计模式是软件开发中的重要概念,它是一套经过验证的解决常见问题的模板,可以帮助开发者更高效地设计和实现复杂的系统。本篇笔记主要涵盖了创建型和结构型两种设计模式。 首先,我们来看看创建型模式。创建型模式...
在"黑马程序员_毕向东_Java基础视频教程第06天-09-面向对象(单例设计模式).avi" 这个文件中,毕向东老师可能会详细讲解以下内容: 1. **字符串基础**: - 字符串对象的创建:通过`new String()`或字面量`"abc"`。 ...
这本书由"黑马程序员"机构出品,专门针对Java开发者在求职过程中的需求,帮助他们在面试中展现出扎实的技术功底。 1. **Java基础** - 类与对象:深入理解面向对象编程的基本概念,包括封装、继承、多态。 - 数据...
- **设计模式**:工厂模式、单例模式、观察者模式等23种设计模式的运用。 - **系统设计**:高并发、高可用、分布式系统的设计原则和实践经验。 - **性能优化**:内存管理、JVM调优、SQL优化等方面的问题解答。 -...