java常见设计_java常见设计模式

工厂模式

普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。

多个工厂模式,编写多个创建工厂的方法即可。

静态工厂模式,在多个工厂模式的基础上把Factory种方法的返回值标明位静态即可。

抽象工厂模式

工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。

抽象工厂模式和普通工厂模式不同的地方在于抽象工厂模式是创建多个工厂类且这些工厂都实现同一个借口Provide(借口中有方法produce()),而普通工厂模式中只有一个工厂类。

单例模式

单例模式中必须有三个东西:单例对象,编写的无参构造方法,用于返回单例对象的getInstance()方法。

单例模式的定义就是:“一个类有且仅有一个实例, 并且自行实例向整个系统提供”。

volatile的作用就是确保本条指令不会因

不管使用的是哪种单例模式,里面的单例对象都是静态变量。

单例模式有三种编写方式。

较为正规的就是双重锁模式:

public classSingleton {privateSingleton()

{

}private static volatile Singleton instance = null;public staticSingleton getInstance()

{if(instance == null)

{synchronized(Singleton.class)

{if(instance == null)

{

instance= newSingleton();

}

}

}returninstance;

}

}

然后还有懒汉模式,懒汉模式是不需要使用双重锁的,性能较低,直接把锁加在方法上。

public classSingleton {private static Singleton instance = null;privateSingleton()

{

}public static synchronizedSingleton getInstance()

{if(instance == null)

{

instance= newSingleton();

}returninstance;

}

}

饿汉模式,单例模式的创建更为简单。直接创建静态常量单例对象,不可以改变,连创建都省掉了。

public classSingleton {private static final Singleton instance = newSingleton();privateSingleton()

{

}publicSingleton getInstance()

{returninstance;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值