随笔分类 - 设计模式
摘要:概述 【例】通过按钮来控制一个电梯的状态,一个电梯有开门状态,关门状态,停止状态,运行状态。每一种状态改变,都有可能要根据其他状态来更新处理。例如,如果电梯门现在处于运行时状态,就不能进行开门操作,而如果电梯门是停止状态,就可以执行开门操作。 类图如下: public interface ILift
阅读全文
摘要:概述 在现实生活中,常常会出现这样的事例:一个请求有多个对象可以处理,但每个对象的处理条件或权限不同。例如,公司员工请假,可批假的领导有部门负责人、副总经理、总经理等,但每个领导能批准的天数不同,员工必须根据自己要请假的天数去找不同的领导签名,也就是说员工必须记住每个领导的姓名、电话和地址等信息,这
阅读全文
摘要:概述 日常生活中,我们出去吃饭都会遇到下面的场景。 定义 将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行存储、传递、调用、增加与管理。 结构 命令模式包含以下主要角色: 抽象命令类(Command))角色:定义命令的接口,声
阅读全文
摘要:概述 先看下面的图,我们去旅游选择出行模式有很多种,可以骑自行车,可以坐汽车,可以坐火车,可以坐飞机 作为一个程序员,开发需要选择一款开发工具,当然可以进行代码开发的工具有很多,可以选择Idea进行开发,也可以使用eclipse进行开发,也可以使用其他的一些开发工具 定义 该模式定义了一系列算法,并
阅读全文
摘要:行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,他涉及算法与对象间职责的分配。 行为型模式分为类行为型模式和对象行为模式,前者采用继承机制来在类间分派行为,后者采用组合或聚合在对象间分配行为。由于组合关系或聚合关系比继承关系耦合度
阅读全文
摘要:概述 运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似对象的开销,从而提高系统资源的利用率。 结构 享元(Flyweight)模式中存在以下两种状态 内部状态,即不会随着环境的改变而改变的可共享部分 外部状态,指随着环境变化而变化的不
阅读全文
摘要:概述 对于这个图片肯定会非常熟悉,上图我们可以看做是一个文件系统,对于这样的结构我们称之为树形结构。在树形结构中可以通过调用某个方法来遍历整个树,当我们找到某个叶子节点后,就可以对叶子节点进行相关的操作。可以将这题树理解成一个大的容器,容器里面包含很多的成员对象,这些成员对象即可是容器对象也可以是叶
阅读全文
摘要:概述 有些人可能超过股票,但其实大部分人都不太懂,这种没有足够了解证券知识的情况下做股票是很容易亏钱的,刚开始炒股肯定都会想,如果找个懂行的帮帮手就好,其实基金就是个好帮手,支付宝里就有许多的基金,它将投资者分散的基金集中起来,交由专业的经理人进行管理,投资于股票,债券,外汇等领域,而基金投资的收益
阅读全文
摘要:概述 我们先来看一个快餐店的例子 快餐店有炒面,炒饭这种快餐,可以额外附加鸡蛋,火腿,培根这些配菜,当然这些配菜需要额外加钱,每个配菜的价钱通常不太一样,那么计算总价就比较麻烦,类图如下 使用继承的方式存在的问题: 拓展性不好 如果要在家一种配料(火腿肠),我们就会发现需要给FriedRice和Fr
阅读全文
摘要:桥接模式 手机操作问题 现在对不同手机类型的不同品牌实现操作编程(比如:开机,关机,上网,打电话等),如图: 传统方式实现类图: 传统方案解决手机操作问题分析 扩展性问题, 如果我们再增加手机的样式(旋转式),就需要增加各个品牌手机的类,同样如果我们增加一个手机品牌,也要在各个手机样式类下增加 违反
阅读全文
摘要:适配器模式概述 如果去欧洲国家去旅游的话,他们的插座如下图最左边,是欧洲标准,而我们使用的插头如下图最右边的。因此我们的笔记本电脑,手机在当地不能直接充电。所以就需要一个插座转换器,转换器第1面插当地的插座,第2面供我们充电,这样使得我们的插头在当地可以使用。 生活中这样的例子很多,手机充电器(将2
阅读全文
摘要:前言概述 机构型模式描述如何姜磊或对象按某种布局组成更大的结构,它分为类结构性和对象结构型模式,前者采用继承机制来组织接口和类,后者采用组合和聚合来组合对象 由于组合关系或聚合关系比继承关系耦合低,满足"合成复用原则",所以对象的结构型模式比类结构型模式具有更大的灵活性 结构型模式分为以下七种: 代
阅读全文
摘要:概述 将一个复杂对象的构建与表示分离,是的同样的构建过程可以创建不同的表示 分离了部件的构造,有Builder来负责,和装配(由Director负责).从而可以构造出复杂的对象.这个模式适用于:某个对象的构造过程复杂的情况 由于实现了构建和装配的解耦,不同的构造器,相同的装配,也可以做出不同的对象;
阅读全文
摘要:概述 用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象 结构 原型模式包含如下角色: 抽象原型类: 规定了具体原型对象必须实现的clone()方法 具体原型类: 实现抽象原型类的clone()方法,他是可被复制的对象 访问类: 使用具体原型类中的clone()方法来复
阅读全文
摘要:概述 需求:设计一个咖啡店点餐系统 设计一个咖啡类(Coffee),并定义两个子类(美式咖啡[AmericanCoffee]和拿铁咖啡[LatteCoffee]);再设计一个咖啡店(CoffeeStore),咖啡店具有点咖啡的功能. 类图如下 //首先创建一个抽象的coffee类 public ab
阅读全文
摘要:单例模式: 单例模式分两种: 饿汉式:类加载时就会导致该单实例对象被创建 饿汉式:类加载不会导致该单实例对象被创建,而是首次使用该对象时才会被创建 饿汉式 1:静态成员变量方式 //饿汉式:静态成员变量 public class Singleton { //私有构造方法 private Single
阅读全文

浙公网安备 33010602011771号