什么时候需要 根据参数不同创建同一父类下不同子类 将对象的创建与对象的使用分离,比如service负责使用dao,而不应该负责创建dao;否则,同一个dao的创建会出现在很多service,一旦需要修改,不仅违背开闭原则,而且改动面很大 模式结构 抽象产品角色:Product 具体产品角色:Conc ...
分类:
其他好文 时间:
2020-07-12 12:29:55
阅读次数:
67
抽象工厂模式 基本介绍 1) 抽象工厂模式:定义了一个interface用于创建相关或有依赖关系的对象簇,而无需 指明具体的类 2) 抽象工厂模式可以将简单工厂模式和工厂方法模式进行整合。 3) 从设计层面看,抽象工厂模式就是对简单工厂模式的改进(或者称为进一步的抽象)。 4) 将工厂抽象成两层,A ...
分类:
其他好文 时间:
2020-07-12 12:28:48
阅读次数:
54
工厂方法模式 工厂方法模式介绍 工厂方法模式设计方案:将披萨项目的实例化功能抽象成抽象方法,在不同的口味点 餐子类中具体实现。 工厂方法模式:定义了一个创建对象的抽象方法,由子类决定要实例化的类。工厂方 法模式将对象的实例化推迟到子类。 工厂方法模式 工厂方法模式应用案例 披萨项目新的需求:客户在点 ...
分类:
其他好文 时间:
2020-07-12 11:55:09
阅读次数:
51
1. 发起人角色 记录当前时刻的内部状态,并负责创建和恢复备忘录数据,允许访问返回到先前状态所需的所有数据。 OriginatorcreateMemento就是创建一个含有自己内部状态的Memento然后setMemento就是把caretaker里的Memento对象拿出来,还原最初的属性 2. ...
分类:
其他好文 时间:
2020-07-11 23:06:43
阅读次数:
79
目录 1. 单例模式 1.饿汉式 2.懒汉式 2. 工厂设计模式 1. 普通工厂模式 2. 多个工厂方法模式 3. 静态工厂方法模式 3. 建造者模式 4. 适配器设计模式 1. 类的适配器模式: 2. 对象的适配器模式 3. 接口的适配器模式 5. 装饰模式 6. 策略模式 7. 代理模式 1. ...
分类:
编程语言 时间:
2020-07-11 23:04:22
阅读次数:
78
一、什么是设计模式 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石 ...
分类:
编程语言 时间:
2020-07-11 22:41:30
阅读次数:
65
首先我们看下各个模式之间的关系图,下面这张图是网上比较典型的一个类图关系: 从上面的类图之间可以看出,学习设计模式或者说学懂完全理解所有的设计模式还是挺难的,只能说不断的重复学习,不断的去领悟才是唯一的方法,当然不排除有些人是天才看一篇就学会了,可惜鄙人不是,所以必须不断重复学习来加深自己的理解。个 ...
分类:
编程语言 时间:
2020-07-11 22:34:46
阅读次数:
54
策略模式的结构 这个模式涉及到三个角色: 环境(Context)角色:持有一个 Strategy 类的引用。抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。具体策略(ConcreteStrategy)角色:包装了相关的算法或行为。 ...
设计模式 设计模式的目的 代码重用性 可读性 可拓展性(可维护性) 可靠性 提高程序对外体现高内聚 低耦合 设计模式的原则 单一职责原则 降低类的复杂度一个类只负责一项职责 提高类的可读性,可维护性。 降低变更引起的风险 通常情况下,遵守单一职责原则,除非逻辑足够简单,可在代码级反单一职责原则,一个 ...
分类:
其他好文 时间:
2020-07-11 19:17:07
阅读次数:
62
观察者模式:在对象之间定义了一对多的依赖,当一个对象改变状态,依赖它的对象会收到通知并自动更新。其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。 观察者模式应用场景 Spring的ApplicationEvent、Zk事件通知节点、消息订阅通知、安卓开发 ...
分类:
其他好文 时间:
2020-07-11 18:56:51
阅读次数:
75