猿灯塔,做程序员的引导者
www.yuandengta.com
1、法模式(创建同接的同实):
1、普通模式:建个类,对实现同接的些类进实的创建;
1 public class SendFactory {
2
3 public Sender produce(String type) {
4 if ("mail".equals(type)) {
5 return new MailSender();
6 } else if ("sms".equals(type)) {
7 return new SmsSender();
8 } else {
9 System.out.println("请输正确的类型!");
10 return null;
11 }
12 }
13 }
2、多个法模式:提供多个法,分别创建对象;
1 public class SendFactory {
2
3 public Sender produceMail(){
4 return new MailSender();
5 }
6
7 public Sender produceSms(){
8 return new SmsSender();
9 }
10 }
3、静态法模式:将上的多个法置为静态的,需要创建实,直接调即可;
4、适场景:凡是出现同种类的产品需要创建,并且具有共同的接时,可以通过法模式进创建。
在以上的三种模式
中,第种如果传的字符有误,能正确创建对象,第三种相对于第种,需要实化类,所以,多数情况下,我们会选第三种——静
态法模式。
2、抽象模式(多个):创建多个类,提的扩展性,像上样如果增加产品则要去修改唯的类;
3、单模式(保证对象只有个实):保证在个JVM中,该对象只有个实存在;
1、适场景:
1、某些类创建较频繁,对于些型的对象,这是笔很的系统开销。
2、省去new操作符,降低系统内存的使频率,减轻GC压。
3、有些类如交所的核交引擎,控制着交流程,如果该类可以创建多个的话,系统完全乱。(如个军队出现多个司
令员同时指挥,肯定会乱成团),所以只有使单模式,才能保证核交服务独控制整个流程。
2、代码:
1 public class Singleton {
2
3 /* 持有私有静态实,防被引,此处赋值为null,的是实现延迟加载 */
4 private static Singleton instance = null;
5
6 /* 私有构造法,防被实化 */
7 private Singleton() {
8 }
9
10 /* 静态程法,创建实 */
11 public static Singleton getInstance() {
12 if (instance == null) {
13 instance = new Singleton();
14 }
15 return instance;