
设计模式
文章平均质量分 62
刘永祥
这个作者很懒,什么都没留下…
展开
-
设计模式——观察者模式
下面我们就来介绍一下行为型模式之一的观察者模式。观察者模式主要用于1对N的通知,当一个对象发生(被观察者)改变时,它需要发出一系列的通知,告知其它的对象(观察者)做出相应的变化。我们所熟悉的广播就是最好的观察者模式。 观察者模式的主要组成: 抽象被观察者角色:把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用原创 2017-02-28 14:53:26 · 901 阅读 · 5 评论 -
设计模式——外观模式
外观模式在我们的项目中使用的还是比较普遍的。外观模式遵守了设计模式六大原则之一的迪米特法则(最少知识法则),一个应用实体应当尽可能少的与其他实体发生相互作用。 外观模式的实用性: 1.为一个复杂子系统提供一个简单接口。 2.提高子系统的独立性。 3.在层次化结构中,可以使用外观模式定义系统中每一层的入口。 举个例子:这个例子跟代理模式里面的例子一样还是关于接项目的事情,假如说我在北京工作,原创 2017-02-26 16:53:58 · 839 阅读 · 0 评论 -
设计模式——装饰模式
装饰的意思想必大家也都知道,就是起修饰美化作用的物品,比如装修效果图造型的轮廓和雕刻装饰;在身体或物体的表面加些附属的东西,使之更美观。在应用程序里面装饰模式也是很有用武之地的。装饰模式的职责:动态的为一个对象添加新的功能。装饰模式是一种用于代替继承的技术,没有必要通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。 装饰模式的适用性: 1原创 2017-02-27 12:18:59 · 662 阅读 · 0 评论 -
设计模式——组合模式
组合模式就是将对象组合成树形结构以表示”部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。组合模式的核心包括抽象构件、叶子构件和容器构件。抽象构件角色:定义了叶子构件和容器构件的共同点。叶子构件角色:无子节点。容器构件角色:有容器特征,可以包含子节点。看了下面的图大家就明白什么是容器和叶子了。 组合模式的适用性 1.你想表示对象的部分-整体层次结构。 2.你希望用户忽略原创 2017-02-24 16:33:08 · 1102 阅读 · 2 评论 -
设计模式——责任链模式
什么都不说了,先来一张图看看今天我们要介绍的东西,跟下面的东西还是有关的,那就是一个链字,下图是一个项链,而我要介绍的则是责任链模式。 责任链模式就是:将能够处理同一类请求的对象连成一条链,所提交的请求沿着链传递,链上的对象逐个判断是否有能力处理该请求,如果能处理则处理,如果不能处理则传递给链上的下一个对象。 责任链模式的适用性: 1.有多个的对象可以处理一个请求,哪个对象处理该请求运行时原创 2017-03-02 18:11:42 · 774 阅读 · 0 评论 -
设计模式——桥接模式
桥接模式就是将抽象部分与它的实现部分分离,使它们都可以独立地变化。桥接模式在我们的日常生活中还是很普遍存在的。尤其是在商场里面,我们常见的商品分类就是最好的桥接模式。 适用于 1.你不希望在抽象和它的实现部分之间有一个固定的绑定关系。 例如这种情况可能是在程序运行时刻实现部分应该可以被选择或者切换。 2.类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充。原创 2017-02-23 15:40:17 · 1166 阅读 · 0 评论 -
设计模式——适配器模式
适配器模式就是将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适配器模式分为两种,一种是类适配器模式,一种是对象适配器模式(也就是跟我们的组合模式配合使用) 适用性: 1.你想使用一个已经存在的类,而它的接口不符合你的需求。 2.你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容原创 2017-02-20 15:43:39 · 724 阅读 · 0 评论 -
设计模式——建造者模式
建造者模式是创建型模式之一,分离了对象子组件的单独构造(也就是我们常见到的以builder结尾的,如:我们所熟悉的关于SAX解析的SAXBuilder)和装配(也就是我们经常见到的以director结尾的,如:DefaulRequestDirector)。由于实现了构建和装配的解耦,不同的构建器,相同的装配,也能创建出不同的对象。即使是相同的构建器,如果装配的顺序不同,也可以创建出不同的对象。也就是原创 2017-01-22 13:05:54 · 791 阅读 · 0 评论 -
设计模式——原型模式
今天我们来说说创建型模式的最后一种模式原型模式,我们先来说一下大家都熟悉的克隆羊多莉,它是一只通过现代工程创造出来的雌性绵羊,也是世界之初第一个成功克隆的人工动物。克隆是英文“clone”或“cloning”的音译,通常是利用生物技术由无性生殖产生与原个体有完全相同基因组织后代的过程。克隆我们了解了,那么原型是什么呢?什么事原型模式呢?其实原型跟我们的克隆是一样的。 原型模式的使用:通过new产生原创 2017-02-14 11:11:43 · 740 阅读 · 1 评论 -
设计模式——工厂模式
工厂模式实现了创建者和调用者的分离。工厂模式的作用就是在实例化对象的时候代替了以往的new操作,将实现类、创建对象进行统一管理。详细分为:简单工厂模式、工厂方法模式、抽象工厂模式。使用工厂模式时最好要遵循面向对象设计的基本原则,即开闭原则、依赖倒转原则和迪米特法则。开闭原则:作为一个软件的应用程序的可扩展性,应当对扩展开放,对修改关闭。依赖倒转原则:要求要针对接口编程不要针对实现编程。迪米特法则:只原创 2017-01-17 17:27:00 · 1119 阅读 · 2 评论 -
设计模式——单例模式
作为开发者的我们,想必设计模式对大家来说并不陌生,设计模式共有23种,分别是:工厂方法(FactoryMethod)、抽象工厂(AbstractFactory) 、建造者模式(Builder)、单态模式(Singleton)、 原型模式(Prototype)、 适配器模式(Adapter)、桥接模式(Bridge) 、组合模式(Composite) 、装饰模式(Decorator)、外观模式(Fac原创 2017-01-17 13:27:48 · 1386 阅读 · 4 评论 -
设计模式——代理模式
代理对于我们来说再熟悉不过了,比如:代理商,代理律师。那么代理的到底是什么含义呢?代理就是受委托代表当事人进行某种活动。那么代理模式的核心作用是什么呢?就是通过代理,控制对象的访问。可以详细的控制访问某个或者是某类对象的方法,在调用这个方法前做前置处理,调用这个方法后做后置处理。 代理是在需要用比较通用和复杂的对象指针代替简单的指针的时候,使用代理模式。 下面是一些可以使用代理 模式常见情况:原创 2017-02-21 18:48:15 · 952 阅读 · 0 评论 -
设计模式——状态模式
状态在我们的生活中是很常见的,比如我们交通使用的红绿信号灯,有红、黄、绿三种状态。其实我们的衣食住行都是状态,比如火车的启动,运行,暂停,状态几乎是无处不在。下面我们来看一个大家再熟悉不过的状态图 想必大家也都知道这几种状态的意义了。其实在我们程序里面状态也是很常见的,比如我们经常使用的switch语句就是最好的说明,case后面的值就是我们所说的状态值,线程的五种状态:新建状态、就绪状态、运原创 2017-03-01 14:11:40 · 875 阅读 · 0 评论 -
设计模式——享元模式
享元模式里面的享则共享的意思,很明显就是共享资源,作用也就很明显运用共享技术有效地支持大量细粒度的对象。如果有很多歌完全相同或相似的对象,我们就可以通过共享模式来节省内存。 享元对象能做到的共享的关键是区分了内部状态和外部状态。内部状态:可以共享,不会随环境变化而改变。外部状态:不可以共享,会随环境变化而改变。共享单车想必大家都很熟悉吧。共享单车其实也是享元模式的体现。单车的颜色,形状,大小,重量原创 2017-02-27 16:45:04 · 645 阅读 · 0 评论