设计模式

1.设计模式的起源

package model;


/**
 * Created  on 2017/4/15.
 */
public class SingletonModel
{
    private  static SingletonModel singleton;
    private SingletonModel()
    {
        System.out.println("Singleton被构造");
    }
    public static SingletonModel getInstance()
    {
        if (singleton== null)
        {
           // SingletonModel singleton=new SingletonModel(); 这样写是错误的
            singleton=new SingletonModel();
        }
        return singleton;
    }
    public static void main(String[] args)
    {
        //获取实例的时候是通过getInstace方法
        SingletonModel singleton1=getInstance();
        SingletonModel singleton=getInstance();
        System.out.println(singleton==singleton1);
    }
}

最早提出“设计模式”概念的是建筑设计大师亚力山大Alexander。在1970年他的《建筑的永恒之道》里描述了投计模式的发现,因为它已经存在了千百年之久,而现代才被通过大量的研究而被发现。

在《建筑的永恒之道》里这样描述:模式是一条由三个部分组成的通用规则:它表示了一个特定环境一类问题一个解决方案之间的关系。每一个模式描述了一个不断重复发生的问题,以及该问题解决方案的核心设计



尽管亚力山大的著作是针对建筑领域的,但他的观点实际上适用于所有的工程设计领域,其中也包括软件设计领域。“软件设计模式”,这个术语是在1990年代由Erich Gamma等人从建筑设计领域引入到计算机科学中来的。目前主要有23种。

2.设计模式的分类

  • 创建型模式:单例模式,工厂模式,抽象工厂模式,原型模式
  • 结构型模式:代理模式
  • 行为型模式:观察者模式,命令模式,解释器模式,中介模式
3.常用设计模式介绍

  •  单例模式
单例模式,故名思意就是一个实例的意思

package model;


/**
 * Created by admin on 2017/4/15.
 */
public class SingletonModel
{
    private  static SingletonModel singleton;
    private SingletonModel()
    {
        System.out.println("Singleton被构造");
    }
    public static SingletonModel getInstance()
    {
        if (singleton== null)
        {
           // SingletonModel singleton=new SingletonModel(); 这样写是错误的
            singleton=new SingletonModel();
        }
        return singleton;
    }
    public static void main(String[] args)
    {
        //获取实例的时候是通过getInstace方法
        SingletonModel singleton1=getInstance();
        SingletonModel singleton=getInstance();
        System.out.println(singleton==singleton1);
    }
}







尽管亚力山大的著作是针对建筑领域的,但他的观点实际上适用于所有的工程设计领域,其中也包括软件设计领域。“软件设计模式”,这个术语是在 1990 年代由 Erich Gamma 等人从建筑设计领域引入到计算机科学中来的。目前主要有 23 种。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值