前言
待补充
设计模式
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理地运用设计模式可以完美地解决很多问题,每种模式在现实中都有相应的原理来与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是设计模式能被广泛应用的1。
设计模式之单例模式
为什么去使用单例模式
在面向对象的语言中,一个对象可以创造多个实例,但是有些情况下我们不希望去创建多个实例,这样会发生一些不好的事情。
例如:在linux操作系统中有很多配置文件,我们在做开发时,有时会去操做相关配置文件,配置文件如果在多线程中,在某个时间必然只能允许一处进行操作。所以,配置文件在操作是单例的。当然我们对于配置文件的操做类也是要单例的,如果我们每次去读写配置文件都要构造一次操作类,那么对于内存将造成不必要的浪费,只需要提供一个全局的单例即可。
单例实现
///饿汉式写法:很简单,立即创建实例。
public class Singleton {
private static Singleton = new Singleton();
private Singleton() {}
public static getSignleton(){
return singleton;
}
}
///单线程写法:调用时去创建,判断是否非空,不适用于多线程(同时调用会创建不
///唯一的实例)
public class Singleton {
private static Singleton singleton = null;
private Singleton(){}
public static Singleton getSingleton() {
if(singleton == null) singleton = new Singleton();
return singleton;
}
}
///懒汉式:考虑了延时创建于多线程
public class Singleton {
private static volatile Singleton singleton = null;
private Singleton(){}
public static Singleton getSingleton(){
synchronized (Singleton.class){
if(singleton == null){
singleton = new Singleton();
}
}
return singleton;
}
}
设计模式之组件模式
测试