文章分类 -  设计模式

摘要:建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。 介绍 意图:将一个复杂的构建与其表示相分离,使 阅读全文
posted @ 2021-10-09 09:54 N神3 阅读(29) 评论(0) 推荐(0) 编辑
摘要:一、咖啡店的故事 这次我们借用HeadFirst中的咖啡店的故事来讨论一下装饰模式。咖啡店中有各种种类的咖啡和咖啡需要加的配料。有一家咖啡店为了提高效率打算开发一套咖啡订购系统,用户可以根据清单选择咖啡和咖啡所加的配料,系统可以自动的计算总价格。 第一种方案是这个样子的: Beverge是一个抽象类 阅读全文
posted @ 2021-10-08 20:19 N神3 阅读(51) 评论(0) 推荐(0) 编辑
摘要:一、击鼓传花 击鼓传花是一种热闹而又紧张的饮酒游戏。在酒宴上宾客一次坐定位置,由一人击鼓,击鼓的地方与传花的地方是分开的,以示公正。开始击鼓时,花束就开始依次传递,鼓声一落,如果花束在某人手中,则该人就得饮酒。 比如说,贾母、贾赦、贾政、贾宝玉和贾环是五个参加击鼓传花游戏的传花者,他们组成一个环链。 阅读全文
posted @ 2021-10-08 20:15 N神3 阅读(41) 评论(0) 推荐(0) 编辑
摘要:一、问题引入 说起适配器其实在我们的生活中是非常常见的,比如:如果你到日本出差,你会发现日本的插座电压都是110V的,而我们的手机充电器和笔记本充电器都是220V,所以你到了日本之后就没办法充电了,这时候我们通常会怎么办呢,当然是使用一个升压的变压器将电压升高到220V,这样我们的手机通过一个变压器 阅读全文
posted @ 2021-10-08 19:39 N神3 阅读(122) 评论(0) 推荐(0) 编辑
摘要:一、打折的烦恼 有一家卖书的网站想做一套结算系统,其中的一部分就是计算书的价格,这家网站上的书基本上都有优惠,而且不同种类的书优惠不同,比如漫画书打9折,小说打6折等等,他们刚开始的设计是这样的。 方案一:在客户端进行判断 if(book is comic) price*=0.9; else if( 阅读全文
posted @ 2021-10-08 19:32 N神3 阅读(33) 评论(0) 推荐(0) 编辑
摘要:一、模式定义 工厂方法模式(Factory Method Pattern)又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创建型模式。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则 阅读全文
posted @ 2021-10-08 17:54 N神3 阅读(141) 评论(0) 推荐(0) 编辑
摘要:状态模式 在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。 在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。 介绍 意图:允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类 阅读全文
posted @ 2021-10-08 17:24 N神3 阅读(12) 评论(0) 推荐(0) 编辑