Java常用设计模式的实例学习系列
虽然拜读了《HeadFirst设计模式》一书,对设计模式进行了学习,但是一直没有真正的进行编码。
近期打算抽空对常用的设计模式进行实例编码,并形成博文,以备日后参考。
hanchao5272
路漫漫其修远兮,吾将上下而求索。https://hanchao.blog.csdn.net/
展开
-
Java常用设计模式的实例学习系列-绪论
关于设计模式设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。设计原则(待更新…)待完善:面向对象的设计原则设计模式分类设计模式分为三种类型,共计23种:创建型模式:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。结构型模式:适配器模式...原创 2019-07-15 16:23:08 · 1528 阅读 · 0 评论 -
设计模式-代理模式-以购房中介为例
超级链接: Java常用设计模式的实例学习系列-绪论参考:《HeadFirst设计模式》1.关于代理模式代理模式是一种结构型模式。代理模式:为其他对象提供一个代理以控制对这个对象的访问。本文以购房中介为场景来学习代理模式:购房者可以直接找房主买房。如此做较累,因为买房之前要多次房屋筛选,买房之后要签订合同等等。购房者可以找房屋中介买房,购房者只需进行少量看房即可,中介将代劳筛选房...原创 2019-07-29 14:44:00 · 1783 阅读 · 1 评论 -
设计模式-外观模式-以瀑布模型软件开发为例
超级链接: Java常用设计模式的实例学习系列-绪论参考:《HeadFirst设计模式》1.关于外观模式外观(facade)模式是一种结构型设计模式。外观模式:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。本文以瀑布模型软件开发为场景来学习外观模式:瀑布模型软件开发过程:制定计划、需求分析、软件设计、程序编写、软件测...原创 2019-07-28 16:39:55 · 1967 阅读 · 0 评论 -
设计模式-模板方法模式-以简历模板为例
超级链接: Java常用设计模式的实例学习系列-绪论参考:《HeadFirst设计模式》1.关于模板方法模式模板方法(template method)模式是一种行为型设计模式。模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。本文以简历模板为场景来学习模板方法模式:为了方便填写简历,简历都...原创 2019-07-28 15:04:58 · 1173 阅读 · 0 评论 -
设计模式-命令模式-以游戏快捷键为例
超级链接: Java常用设计模式的实例学习系列-绪论参考:《HeadFirst设计模式》1.关于命令模式命令模式是一种行为型模式。命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。本文以游戏快捷键为场景来学习命令模式:在MMORPG游戏中,游戏操作有:角色前进、角色跳跃、释放技能:火球术、释放技能:潜行术、打...原创 2019-07-28 12:22:27 · 1383 阅读 · 0 评论 -
设计模式-状态模式-以射击游戏的武器状态为例
超级链接: Java常用设计模式的实例学习系列-绪论参考:《HeadFirst设计模式》1.关于状态模式命令模式是一种行为型模式。命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。本文以射击游戏的武器状态为场景来学习命令模式:射击武器的状态有:有子弹、没子弹。射击武器的操作有:射击、填充子弹。有子弹时可以...原创 2019-07-26 15:11:56 · 964 阅读 · 0 评论 -
设计模式-责任链模式-以多轮面试为例
超级链接: Java常用设计模式的实例学习系列-绪论参考:《HeadFirst设计模式》1.关于责任链模式责任链(Chain of Responsibility)模式是一种行为型模式。责任链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。本文以多轮面试为场景来学习责任链模式:招聘流...原创 2019-07-25 18:49:53 · 815 阅读 · 1 评论 -
设计模式-观察者模式-以报纸订阅为例
超级链接: Java常用设计模式的实例学习系列-绪论参考:《HeadFirst设计模式》1.关于观察者模式观察者模式是一种行为模式。观察者模式:定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。本文以报纸订阅为场景来学习观察者模式:用户可以订阅报纸,也可以取消订阅报纸。可以将报纸发布给所有订阅它的用户。2.原始实现不考...原创 2019-07-24 18:21:01 · 1606 阅读 · 0 评论 -
设计模式-装饰者模式-以蛋糕装饰为例
超级链接: Java常用设计模式的实例学习系列-绪论参考:《HeadFirst设计模式》1.关于装饰者模式装饰者模式是一种结构型模式。装饰者模式:动态地给一个对象添加一些额外的职责。本文以生日蛋糕装饰这一场景来学习装饰者模式:生日蛋糕在制作过程中,可以添加一系列装饰,例如:奶油、水果、饼干等等。每种装饰品都有独特的计量单位,例如:10个饼干、6片水果等等,每种装饰品都有其价格。...原创 2019-07-24 17:20:03 · 1543 阅读 · 0 评论 -
设计模式-适配器模式-以电压适配器为例
超级链接: Java常用设计模式的实例学习系列-绪论参考:《HeadFirst设计模式》1.关于适配器模式适配器模式是一种结构型模式。适配器模式:将一个类的接口转换成客户期望的另一个接口。下面以一张经典的图来描述适配器模式:adapter.png本文以电压适配器为场景来学习适配器模式:手机充Phone电需要的电压是5V的。充电宝PortableBatteryPower提供的电...原创 2019-07-19 16:43:37 · 1351 阅读 · 6 评论 -
设计模式-工厂模式-3种-以手机制造工厂为例
超级链接: Java常用设计模式的实例学习系列-绪论参考:《HeadFirst设计模式》1.工厂模式存在的意义工厂存在的意义是:高效的制造某一类产品。工厂模式存在的意义是:高效的创建某一类对象。工厂模式有很多种,本文只介绍以下三种:简单工厂模式,又称静态工厂模式。工厂方法模式,全称多个工厂方法模式。抽象工厂模式。本文以`手机制造工厂生产手机为场景来学习工厂模式。手机有两...原创 2019-07-19 16:05:18 · 4451 阅读 · 2 评论 -
设计模式-策略模式-以购物车的支付策略为例
超级链接: Java常用设计模式的实例学习系列-绪论参考:《HeadFirst设计模式》1.关于策略模式策略模式是一种行为模式。策略模式:如果某种行为拥有多种运作方式,那么把这种行为视为一种策略,把这些运作方式视为策略实现,这些策略实现之间可以相互替换。这样,行为调用方就可以在运行时,根据不同的需求,将相应的策略实现当做参数,以达到行为按照某种方式运作的目的。本文以购物车的支付策略为...原创 2019-07-19 14:37:49 · 4861 阅读 · 3 评论 -
Java常用设计模式的实例学习系列-面向对象的六个设计原则-以购物车支付为例
超级链接: Java常用设计模式的实例学习系列-绪论参考:《HeadFirst设计模式》1.原始设计简述本文以购物车支付场景为例,对面向对象的六个原则进行理解。本文中的代码是逐步重构的,如果本步骤的代码与上步骤的代码相同,则不再展示。本文的主要目的是理解六个设计原则,所以对于需求是否合理和代码是否粗糙就请不要计较了。完整代码可以参考github:https://github.com...原创 2019-07-18 17:34:41 · 1407 阅读 · 0 评论 -
Java常用设计模式的实例学习系列-单例模式-8种-以打印机为例
超级链接: Java常用设计模式的实例学习系列-绪论其实关于单例模式的代码网上有很多,但是很多都是直接以Singleton类名所编写的示例代码。通过参考这些代码,可能落实到真正的代码中会遇到些困难,例如枚举式单例模式。所以本文以实例打印机为例,站在各位巨人的肩膀上,再次进行单例模式的整理与总结。1.单利模式存在的意义在很多应用中,对于某一种对象,我们最多只需要其一个实例存在。比方说:...原创 2019-07-15 16:25:28 · 2072 阅读 · 4 评论