【设计模式】
Dm同学
博观而约取
展开
-
【设计模式】代理模式
今天早上,米老师决定给同学开会。于是通过班长通知给全班的所有学生。 这就是一个代理模式。 代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问。 一个是真正的你要访问的对象(目标类),一个是代理对象,真正对象与代理 对象实现同一个接口,先访问代理类再访问真正要访问的对象。 生活中,我们常听到xxx是某某品牌的校园代理。其实和我们的设计模式是一样的。本来是某原创 2014-04-29 18:01:55 · 1530 阅读 · 15 评论 -
旧瓶装新酒的抽象工厂
自上而下的使用设计模式与自上而下的揭示迭代式开发和持续性重构结合起来。所以我们尽可能的去寻找使用模式改进代码的新可能。记录了具有公认良好属性的程序结构。然而,并非每一个设计模式都能完美的适用并应用于我们的项目。所以如果我们从最初的代码去了解每一个设计模式的针对具体情况不断演变而生的过程。获取我们能重新得到一种思路和一种共鸣,从而简化我们的项目。现在我们有两个这样的类。SQLServerUser 调用原创 2015-12-03 22:44:11 · 1047 阅读 · 5 评论 -
旧瓶装新酒的单例模式
单例模式大家都不陌生。即在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问。 在应用的时候 ,我们可以把它比喻成一个小桥。 A同学为了游泳,建立了一个泳池,这个泳池可以其他人也用。这样B同学在游泳就不用再自己建一个泳池了。那么我们来说一下如何保证单例模式的唯一性。①平常的类我们都是通过调用其类的构造方法来创建。如classA tem原创 2015-11-30 00:01:58 · 815 阅读 · 7 评论 -
再谈对设计模式的理解
再谈对设计模式的理解近期在公司,相对之前的工作环境,学习新的技术的时间少了很多。但是对所谓的旧知识却有了更深一步的理解。最近每每看 无论是大话还是headfirst 里面经典的改造方式都会心生惊喜。设计模式的原则和方法书中都 提到了很多。结合自己的感触谈几点。 原则单一职责一个庞大的系统来说,单一职责更方便开发和维护。对于类来说,一个类只做一件事。 对于方法来说,尽可能也单口入,单口出,只做一件事。原创 2015-11-24 22:11:39 · 1146 阅读 · 11 评论 -
【设计模式】装饰模式
刚看了看设计模式,真是费了好多的脑细胞。 想着想着就到了食堂。O(∩_∩)O哈!正是长身体的时候(大神勿喷), 一定要多吃点。于是我打了一份米饭,然后又端着盛米饭的盘子买了一份凉菜 ,看着还不是很够,就又端着这个盘子买了一条最爱吃的鱼。 -----装饰模式! 饭 meal=new 饭("晚饭"); 米饭rice=new米饭(); 菜vegetables= new 菜(); 鱼fish = new 鱼(); rice.Decorate(meal); vegetables.Decorate(rice);原创 2014-04-29 10:14:44 · 1718 阅读 · 18 评论 -
【设计模式】总结篇 对比中找联系
设计模式中,真的有的长的很像的,甚至我们能从其中一个的类图直接演变为另一种类图。快,现在让我们来看看那些我们认识的姊妹图。 第一组:模板方法PK 建造者模式PK 工厂方法 模板方法 建造者模式 工厂方法 三者比较:相同点,主要思想都是定义一个框架,然后将一些步骤延迟到子类。 不同点,首先,模板方法模式是行为型模式,而建造者模式工厂方法都是创建型模式。 两两比较:模板VS 建造者 建造者模式用到模板方法,他们两个的使用范围区分就看构建的算法是否需要另外创建一个类。 而承担这原创 2014-05-17 14:30:41 · 1887 阅读 · 28 评论 -
【设计模式】迭代器模式
我们把对象堆起来放成为一个集合,方法有很多,比如放进数组 堆栈 列表中。当客户想要遍历这些对象时,你打算让他看到你的实现么?当然不要!一点专业范儿都没了。 所以今天我们谈的就是如何让客户遍历对象而又无法窥视你存储对象的方式——迭代器模式 概述 提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。 适用情况:当不需要访问一个聚集对象,而且不管这些对象是什么都原创 2014-05-06 14:05:24 · 1576 阅读 · 20 评论 -
【设计模式】盘点设计模式的几宗”最“
第一遍学完《大话设计模式》,顿感思考层次高了起来。让我们能站在山顶以更高的角度来俯视我们的设计。但是,我们也深知一遍的学习是远远不够的,今天先试着将自己目前的理解尽可能宏观的总结一下 ,各位多多指教,不胜感激。 什么是设计模式 设计模式(Designpattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代原创 2014-05-12 21:03:56 · 1646 阅读 · 36 评论 -
【设计模式】策略模式
演出 策略模式 听说最近物电学院要组织活动了。电子,电器,物理各自准备了一个节目,但是由于节目安排时间有限,只能一个有专业的同学要表演。主持人找到四组,要决定由哪一组上台表演。 标准一,辛苦程度。电器的排练很辛苦,让他们参加吧。 于是,主持人在表演流程中写上电器表演。 标准二,表演效果。电子的表演最精彩了。 又于是主持人又重新将电器pass,表演流程中写上电子。 标准三 。。。。。。。争执不下中。。。 主持人说,这样变来变去我都晕了。 这样吧,我还有一个小秘,大家决定之后把各组的信息原创 2014-04-25 22:07:03 · 1687 阅读 · 21 评论 -
【设计模式】全局看 简单工厂 -工厂方法- 抽象工厂
简单工厂模式,工厂方法模式和抽象工厂模式都是属于创建型设计模式,三个模式的变化只需我们掌握一个内功心法,就是在创建一个对象时,找出会变化的地方,把它们从不变的部分分离出来,将可变的部分留作接口。 即哪里变化,封装哪里 , 以达到最大程度上的复用。究竟用哪种设计模式更适合,这要根据具体的业务需求来决定 从以下几个方面来比较不同。 适用情况 简单工厂 : 用来生产同原创 2014-05-04 15:41:33 · 1609 阅读 · 17 评论 -
【设计模式】简单工厂VS工厂方法
如题,已经知道咱们今天要谈的是工厂。提到这个词,还和我小时候的梦想有关。小时候,总喜欢吃小动物饼干,小熊的,小鹿小马的陪伴了大半个童年。要是有一天,我有个工厂,想吃多少就能制作多少 该多好,就不用把它们种在地里等着来年发芽了。 今天有这个机会,我先生产饼干试一试~ 制作一次饼干,自然要标明它的重量和成分。当然了,我还有各种形状的饼干。先做一些小熊和小鹿的让大伙尝尝。 简单工厂原创 2014-04-30 21:23:59 · 1396 阅读 · 9 评论 -
【设计模式】建造者模式
挖个坑,埋点土,数个一二三四五。今天我们从它说起建造模式。 概述 其核心思想是将一个“复杂对象的构建算法”与它的“部件及组装方式”分离,使得构件算法和组装方式可以独立应对变化;复用同样的构建算法可以创建不同的表示,不同的构建过程可以复用相同的部件组装方式。因此,如果我们用了建造者模式,那么用户就只需指定需要建造的类型就可以得到他们,而具体的建造过程的细节就不需知道了。 优点 使得建造代码与表示代码分离,由于建造者隐藏原创 2014-05-03 13:42:27 · 1475 阅读 · 9 评论 -
【设计模式】简单工厂模式
用一个单独的类来做这个创造实例的过程,这就是工厂。 从《大化设计模式》中,思维在不断的碰撞,让我们在来回顾一下计算器的编写过程中一步步的关键变化。原创 2014-04-24 20:50:43 · 2389 阅读 · 16 评论 -
【设计模式】观察者模式
今天我们来谈谈观察者模式的演变过程 和委托事件。 生活中,当某件事发生时,应该通知所有的相关者。例如,上课地点有变,要通知所有学习这门课的同学。 在软件设计中,当一个对象的状态发生变化是,如何通知与它相关的所有对象,就是我们今天要谈到的观察者模式。原创 2014-05-04 09:46:59 · 1369 阅读 · 8 评论 -
【设计模式】原型模式
本文将从以下几点浅谈原型模式: 概述 结构图 分类 浅复制:结构图 代码 复制图示 深复制:结构图 代码 复制图示 总结 概述: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节。 复制过程,并不是做一个抽象类,去实例化它。而是只需通过实现一个含有Clone()方法的接口就可以去克隆,这就是.NET在System命名空间中提供的ICloneable接口 。原创 2014-05-02 16:42:00 · 1559 阅读 · 9 评论