设计模式
小丫小菇凉
这个作者很懒,什么都没留下…
展开
-
单例模式
单例模式定义实现方法饿汉式--线程安全懒汉式--线程不安全懒汉式--线程安全双重检查--禁止指令重排允许重排--使指令重排不可见功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文...原创 2019-04-26 23:45:50 · 117 阅读 · 0 评论 -
观察者模式(Observer)
场景:广播机制。消息发布----消息订阅。多个订阅者、客户称为观察者,需要同步给多个订阅者的数据封装到对象中,称为目标。核心:1:N的通知。当一个对象(目标对象Subject或Observable)的状态变化时,他需要及时告知一系列对象(Observer),令他们做出响应。通知方式:push:广播,观察者只能被动接收。pull:观察者知道有情况即可。什么时候获取内容或获取什么内容,都可...原创 2019-06-17 22:24:43 · 229 阅读 · 0 评论 -
策略模式(Strategy)
分离算法,选择实现。提供解决某一问题的算法族,允许用户从算法族中任选一个算法解决问题,方便更换算法或增加新算法。客户端决定调用哪个算法。假设场景:一个报价系统,根据不同类型的用户及采购商品数量,给不同的折扣。建立一个策略接口。public interface Strategy { public double getPrice(double standardPrice);}不同...原创 2019-06-17 21:01:19 · 178 阅读 · 0 评论 -
装饰模式(Decorator)
装饰模式动态为一个对象增加新的功能。一种用于替代继承的技术,无需通过继承增加子类就能扩展对象的新功能。实现细节Component抽象构件角色真实对象和装饰对象有相同的接口。ConcreteComponent具体构件角色(真实对象)Decorator装饰角色:持有一个抽象构件的引用。接受所有客户端的功能,并把这些请求转发给真实对象,这样就能在真实对象调用前后增加新的功能。Concre...原创 2019-05-17 14:17:19 · 119 阅读 · 0 评论 -
组合模式(Composite)
组合模式把部分和整体的关系用树形结构来表示,从而使客户端可以使用统一的方式处理部分对象和整体对象。角色抽象构件(Component):定义叶子和容器构件的共同点叶子构件(Leaf):无子节点容器构件(Composite):有容器特征,可以包含子节点具体来说:容器构件的特征就是增加了add和remove子节点,以及进行索引的功能。public interface Component {...原创 2019-05-16 16:45:26 · 375 阅读 · 0 评论 -
代理模式(Proxy)
代理模式通过代理,控制对对象的访问。可以详细控制某个或某类对象的方法,在调用这个方法前做前置处理,调用这个方法后做后置处理。举个例子:用户邀请明星唱歌,可以通过经纪人作为代理。那么经纪人完成面谈合同安排等等,明星只负责前置处理技术后唱歌,如果经纪人负责多个明星,它可以为多个明星提供前置服务。核心角色抽象角色:定义代理角色和真实角色的公共对外方法。真实角色:实现抽象角色,定义真实角色所要...原创 2019-05-14 22:45:55 · 353 阅读 · 0 评论 -
适配器模式(Adapter)
适配器模式将一个类的接口转换为客户希望的另一个接口。使原本由于接口不兼容而不能一起工作的类可以在一起工作。主要角色:目标接口(Target): 客户期待的接口。目标可以是具体或抽象的类,或接口。需要适配的类(Adaptee)适配器:通过包装一个需要适配的对象,将原接口转换为目标接口。...原创 2019-05-14 21:16:08 · 133 阅读 · 0 评论 -
原型模式(Prototype)
原型模式通过new产生一个对象需要非常繁琐的数据准备或访问权限,可以使用原型模式。以某个对象为原型,复制出新的对象,效率高。java里的原型模式就是clone。主要注意浅拷贝和深拷贝的问题。模拟一个克隆羊的过程,实现一个Sheep类:public class Sheep implements Cloneable, Serializable { private String sname...原创 2019-05-07 00:21:54 · 98 阅读 · 0 评论 -
建造者模式(Builder)
建造者模式(Builder)适用情况:要建造一个复杂的产品,有很多的子组件构成,需要将子组件按照一定步骤装配在一起。本质:分离对象子组件的单独构造(Builder负责)和装配(Director负责)。适用于某个对象构建过程复杂的情况。一般建造者模式和工厂模式搭配使用。假设场景:构建一个XX牌宇宙飞船,包含发动机,轨道舱,逃逸塔,且需要按顺序进行装配。创建一个宇宙飞船类,它包含三个私有fi...原创 2019-05-02 23:33:15 · 115 阅读 · 0 评论 -
工厂模式
简单工厂模式也叫静态工厂模式,工厂类一般使用静态方法,通过接收参数的不同返回不同的对象实例。但对于新增加产品,必须修改已有类或已有方法,是违反开闭原则的。...原创 2019-05-02 15:57:05 · 161 阅读 · 0 评论 -
MVC架构模式
M–Model:数据管理(如数据库访问)V–View:数据显示(界面)C–Controller:控制响应策略组成MVC的三种模式:组合模式:https://blog.csdn.net/tjgongxl/article/details/90265092策略模式:https://blog.csdn.net/tjgongxl/article/details/92705343观察者模式:htt...原创 2019-06-17 22:51:18 · 972 阅读 · 0 评论