目录 一、创建型设计模式 二、结构型设计模式 三、行为型设计模式 一、创建型设计模式 1、简单工厂模式 内容: 不直接向高层类暴露对象创建的实现细节,而是通过一个工厂类来负责创建产品类的实例。 角色: 工厂角色(Creator) 抽象产品角色(Product) 具体产品角色(Concrete Pro ...
分类:
编程语言 时间:
2019-09-15 00:41:41
阅读次数:
113
抽象工厂属于创建型设计模式, 抽象工厂能够生产一系列相对固定的产品簇产品,要扩展一个工厂相对容易,如果要扩展一个产品簇中的产品数量,就要全部的工厂都要扩展,就相对麻烦 抽象工厂:工厂+约束 /// 创建产品簇,多个对象是个整体,不可分割 抽象的工厂类 各实现类 ...
分类:
Web程序 时间:
2019-09-02 23:42:02
阅读次数:
121
简单工厂模式:。 简单的,只有一个工厂类,通过向工厂对象种传参来使工厂判断创建哪个类的对象, 通常通过if、switch语句来实现,由很大的缺点,如果我们再加入要创建的新的类 就必须要更改工厂的源代码才可以使得工厂支持创建这个新的类的对象。 shi'yongpackage main import "... ...
分类:
其他好文 时间:
2019-08-09 15:25:10
阅读次数:
99
一、单例模式 1、什么是单例模式 采取一定的方法,使程序中的某个类只存在一个实例对象,且该类对外提供一个获取该对象的方法(一般为静态方法)。 2、单例模式分类 (1)饿汉式(2种写法,线程安全) 静态变量 静态代码块 (2)懒汉式(3种写法) 线程不安全 线程安全,同步方法 线程安全,同步代码块(不 ...
分类:
其他好文 时间:
2019-08-02 20:11:59
阅读次数:
84
一、一句话背景 我需要一辆汽车,那我可以直接从工厂里面提货,而不用去管汽车是怎么做出来的,以及生产汽车的具体实现,我只需要告诉这个工厂要生产什么品牌的汽车就好,具体的汽车生产流水线我也不用管。 二、使用场景 知道部分特性而创建具体对象的场景。 如:根据环境类型(dev,test或master等)直接 ...
分类:
其他好文 时间:
2019-07-21 18:55:28
阅读次数:
133
一、一句话背景 假如我是一个汽车经销商,那我不光是卖车,也得卖相关的配件吧,比如润滑油,轮胎之类的,那我能不能整一个抽象的工厂,我需要啥直接告诉这个抽象工厂,具体生产哪一类产品让这个抽象工厂自己去对接,这样我不管需要啥都只用找这个抽象工厂的负责人就可以,而不用找每一类具体产品工厂的负责人,我可就省事 ...
分类:
其他好文 时间:
2019-07-21 18:51:14
阅读次数:
143
一、一句话背景 假如我是个设计大佬,我经常需要调用服务去获取各种基本图形来组合我的素材,那重复访问的工作就会很多,那在没有外置缓存的情况下,可以考虑使用原型模式来玩~ 二、使用场景 需要重复生成多次相同对象的场景。 如:重复取相同对象使用时 三、模型分析 图形原型:抽象类,原型父类,用于扩展子类对象 ...
分类:
其他好文 时间:
2019-07-21 18:23:27
阅读次数:
111
一、一句话背景 假如公司有一台打印机,我们要使用它,但是不能把他带回家,当然也没必要为了只是因为偶尔打印文件而自己在家里买一台,这种情况可以把打印机看作一个单例,下面来分析一下 二、使用场景 当您想控制实例数目,节省系统资源的时候。 三、模型分析 公司的打印机:单例对象 自己在家买的打印机 : 新的 ...
分类:
其他好文 时间:
2019-07-21 18:23:06
阅读次数:
107
一、一句话背景 假如我去麦当劳,麦当劳提供了多种多样的套餐供我选择,但是套餐组成无非就是汉堡、鸡翅、冷饮、薯条等这几种固定的东西,搭配不同就变成了不同的套餐,那么菜单的生成就可以使用建造者模式来进行 二、使用场景 基础组件不变,组合逻辑多变的场景。 如:套餐搭配 三、模型分析 菜单:类,把不同的对象 ...
分类:
其他好文 时间:
2019-07-21 18:06:26
阅读次数:
113
一、基本概念 单例模式属于创建型设计模式。 确保一个类只有一个实例,并提供该实例的全局访问点。 实现: 使用一个私有构造函数、一个私有静态变量以及一个公有静态函数来实现。 二、结构 类图: 私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返回唯一的私有静态变量。 三、几类经典单 ...
分类:
其他好文 时间:
2019-06-15 15:08:25
阅读次数:
116