![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 75
小小的人儿居然已存在
暂时没有描述
展开
-
架构师之路:设计模式-策略模式
在现实生活中常常遇到实现某种目标存在多种策略可供选择的情况,例如,出行旅游可以乘坐飞机、乘坐火车、骑自行车或自己开私家车等,超市促销可以釆用打折、送商品、送积分等方法。在软件开发中也常常遇到类似的情况,当实现某一个功能存在多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能,如数据排序策略有冒泡排序、选择排序、插入排序、二叉树排序等。如果使用多重条件转移语句实现(即硬编码),不但使条件语句变得很复杂,而且增加、删除或更换算法要修改原代码,不易维护,违背开闭原则。如果采用策略转载 2021-05-26 15:13:14 · 162 阅读 · 1 评论 -
架构师之路:设计模式-模板方法模式
模式的定义与特点模板方法(Template Method)模式的定义如下:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。它是一种类行为型模式。优点它封装了不变部分,扩展可变部分。它把认为是不变部分的算法封装到父类中实现,而把可变部分算法由子类继承实现,便于子类继续扩展。它在父类中提取了公共的部分代码,便于代码复用。部分方法是由子类实现的,因此子类可以通过扩展方式增加相应的功能,符合开闭原则。缺点对每个不同的实现都转载 2021-05-27 09:47:20 · 114 阅读 · 1 评论 -
架构师之路:设计模式-单例模式
在有些系统中,为了节省内存资源、保证数据内容的一致性,对某些类要求只能创建一个实例,这就是所谓的单例模式。单例模式的定义与特点单例(Singleton)模式的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式。例如,Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误。单例模式有 3 个特点:单例类只有一个实例对象;该单例对象必须由单例类自行创建;单例类对外提供一个访问该单例的全局访问点。单例模转载 2021-05-26 13:55:30 · 97 阅读 · 1 评论 -
架构师之路:设计模式-原型模式
原型模式其实就是复制,从一个现有的对象直接复制一个对象出来,这就是原型模式。直接复制额优势就是不用去重新执行new的过程,更高效。复制专业点就是克隆,克隆有两种方式,深克隆和浅克隆。这里就不多描述克隆。Java中的clonejava为我们实现了clone,我们来研究下java中的克隆。static class IObj1 implements Cloneable{ private IObj2 obj2; public IObj2 getObj2() {原创 2021-05-26 15:50:21 · 98 阅读 · 1 评论 -
架构师之路:设计模式-工厂模式
工厂模式有三种:简单工厂模式、工厂方法模式和抽象工厂模式。简单工厂模式在简单工厂模式中创建实例的方法通常为静态(static)方法,因此简单工厂模式(Simple Factory Pattern)又叫作静态工厂方法模式(Static Factory Method Pattern)。简单工厂模式不在 GoF 23 种设计模式之列。简单工厂模式每增加一个产品就要增加一个具体产品类和一个对应的具体工厂类,这增加了系统的复杂度,违背了“开闭原则”。“工厂方法模式”是对简单工厂模式的进一步抽象化,其好处是可以转载 2021-05-25 20:54:18 · 208 阅读 · 1 评论 -
架构师之路:设计模式-代理模式
定义定义:代理(Proxy)是一种设计模式,代理对象代表目标的对象去完成对应的事情,在需要目标对象的时候再让目标对象去执行。生活中的中介等角色就是代理模式中的代理对象。代理模式的好处以买房为例,买的是二手房,大家都知道买房想找到一个满意的房子是很累的工作,我们需要到处看房,采集多家房源的信息做对比。但是如果我们有一个很好地代理对象的话,我们是不是就会轻松很多(事实上这个很好地代理对象不好找)...原创 2019-11-27 14:44:13 · 329 阅读 · 1 评论