随笔分类 -  设计模式

面试经典之常见的程序设计模式!
摘要:定义:定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖它的对象都会得到通知并被自动刷新,也称为发布-订阅模式(Publish-Subscribe Pattern)。 优点:1、观察者和被观察者是抽象耦合 2、建立一套触发机制 缺点:1、一个被观察者,多个观察者,开发和调试都变得相 阅读全文
posted @ 2017-03-22 17:38 Forever-Road 阅读(224) 评论(0) 推荐(0)
摘要:定义:定义一组算法,将每个算法封装起来,并且使他们之间可以互换。 策略模式使用的就是面向对象的继承和多态机制。 优点:1、算法可以自由切换 2、避免使用多重条件判断 3、扩展性良好 缺点:1、策略类数量增多 2、所有策略类都需要向外暴露 阅读全文
posted @ 2017-03-21 17:03 Forever-Road 阅读(148) 评论(0) 推荐(0)
摘要:定义:定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 优点:1、封装不变部分(在父类实现),扩展可变部分(在子类实现) 2、提取公共部分代码,便于维护 3、行为由父类控制,子类实现 缺点:按照我们的设计习惯,抽象类负责声明最抽象 阅读全文
posted @ 2017-03-21 15:47 Forever-Road 阅读(160) 评论(0) 推荐(0)
摘要:定义:为其他对象提供一种代理以控制这个对象的访问,也叫做委托模式。 咱们比作游戏,通俗讲代理模式就是,一个主题虚基类派生出两个子类,一个玩家类,实现相关操作,一个是代练类,代替执行玩家相关操作,代练类对象有个指向玩家类对象的指针,可以通过调用代练类对象,实现玩家不登录,游戏照样打怪升级。。。。 阅读全文
posted @ 2017-03-20 20:03 Forever-Road 阅读(246) 评论(0) 推荐(0)
摘要:定义:定义一个用于创建对象的接口,让子类来决定实例化哪个类。 对于工厂方法模式的组成: 1)抽象工厂角色: 这是工厂方法模式的核心,它与应用程序无关。是具体工厂角色必须实现的接口或者必须继承的父类。 2)具体工厂角色:它含有和具体业务逻辑有关的代码。由应用程序调用以创建对应的具体产品的对象。 3)抽 阅读全文
posted @ 2017-03-20 17:02 Forever-Road 阅读(199) 评论(0) 推荐(0)
摘要:定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例 就类似于皇帝与臣子的关系,皇帝只能有一个,臣子可以有多个,皇帝能召见多个臣子,但是所有臣子只能访问一个皇帝。 阅读全文
posted @ 2017-03-20 16:09 Forever-Road 阅读(91) 评论(0) 推荐(0)