大话设计模式
静静燃烧的雪
这个作者很懒,什么都没留下…
展开
-
大话设计模式-第03章 拍摄UFO-单一职责原则
第03章拍摄UFO-单一职责原则 单一职责原则:就一个类而言,应该仅有一个引起他变化的原因。如一个类若有太多的职责,则意味着,无论任何需求要更新,这个类就要更新,这样维护起来就很麻烦,复用就不可能,缺乏灵活性。 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化原创 2016-05-31 08:32:59 · 377 阅读 · 0 评论 -
大话设计模式--第25章 世界需要和平—中介者模式
第25章世界需要和平—中介者模式又称调停者模式尽管将一个系统分割成许多对象通常增加了其可复用性,但是对象间相互连接的激增又会降低其可复用性。大量的连接时的一个对象不可能在没有其它对象的支持下工作,系统表现为一个不可分割的整体,所以,对系统的行为进行任何较大的改动就十分困难。迪米特法则:如果两个类不必彼此原创 2016-07-02 16:54:52 · 337 阅读 · 0 评论 -
大话设计模式--第26章 项目多也别傻做——享元模式
第26章项目多也别傻做——享元模式 ¥:度娘:¥[享元模式](Flyweight Pattern(|ˈpætn| noun图案))是一种软件¥[设计模式]。它使用共享物件,用来尽可能¥[减少内存使用量]以及分享资讯给尽可能多的相似物件;它适用于只是因重复而导致使用无法令人接受的大量内存的大量物件。通常物件中的部分状态是可以分享,常见的做法是把它们放在外部数据结构中(例如把这些原创 2016-07-02 16:55:40 · 278 阅读 · 0 评论 -
大话设计模式-第01章 代码无错就是优?——简单工厂模式
第01章代码无错就是优?——简单工厂模式 版本1: class Program { static void Main(string[] args) { Console.Write(“请输入数字A:”);原创 2016-05-30 10:05:30 · 726 阅读 · 0 评论 -
大话设计模式-第15章 就不能不换DB呢?--抽象工厂模式
第15章就不能不换DB呢?--抽象工厂模式15.2 最基本的数据访问程序class User{ private int _id; public int ID { get { return _id; } set { _id = value;} }原创 2016-06-15 19:22:19 · 406 阅读 · 0 评论 -
大话设计模式-第17章 在NBA我需要翻译----适配器模式
第17章在NBA我需要翻译----适配器模式17.2 适配器模式 适配器模式Adapter,将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类一起工作。例如电源适配器。 在软件开发中,有时会出现系统的数据和行为都正确,但接口不符时,我们应该考虑使用适配器,目的是是控制范围之外的一个原有对象与某个接口匹配原创 2016-06-19 17:16:17 · 535 阅读 · 0 评论 -
大话设计模式-第02章 商场促销--策略模式
第02章商场促销--策略模式2.1 商场收银软件版本1: double total = 0.0d; private void btnOk_Click(object sender, EventArgs e) { double totalPrices = Convert.ToDouble(txtPrice.text)原创 2016-06-04 00:11:26 · 610 阅读 · 0 评论 -
大话设计模式-第05章 会修电脑不会修收音机?-依赖倒转原则
第05章会修电脑不会修收音机?-依赖倒转原则 依赖倒转原则: A:高层模块不应该依赖底层模块。两个都应该依赖抽象。 B:抽象不应该依赖细节。细节应该依赖抽象。 依赖倒转原则,也翻译成依赖倒置原则。原话解释是抽象不应该依赖细节,细节应该依赖于抽象,说白了,就是要针对接口编程,不要对实现编程。原创 2016-05-31 15:33:21 · 513 阅读 · 0 评论 -
大话设计模式-第27章 其实你不懂老板的心--解释器模式
第27章其实你不懂老板的心--解释器模式27.2 解释器模式解释器模式(interpreter),给定一个语言,定义他的文法的一种表示,并给定一个解释器,这个解释器使用该表示来解释语言中的句子。如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。原创 2016-07-05 21:31:56 · 562 阅读 · 1 评论 -
大话设计模式-第28章 男人和女人--访问者模式
第28章男人和女人--访问者模式28.4 用了模式的实现“状态”的抽象和“人”的抽象abstract class Action{ //得到男人结论或反应 public abstract void GetManConclusion(Man concreteElementA); //得到女人结论或反应 publ原创 2016-07-05 23:33:14 · 414 阅读 · 0 评论 -
2017-01-10 晩 模版模式
策略模式:我定义一个算法家族,并让这些算法可以互换。正因为每一个算法家族都被封装起来,所以客户可以轻易地使用不同的方法。模版模式:定义一个算法的大纲,由子类决定其中某些步骤的内容。这样算法中的个别步骤可以有不同的实现细节,但是算法的结构依然维持不变。|ˈstrætədʒi|1. Strategy uses ____ rather than inher原创 2017-01-10 21:34:18 · 217 阅读 · 0 评论 -
2017-01-11 晩 状态模式
状态模式策略模式和状态模式是双胞胎,在出生时才分开:策略模式是围绕可以互换的算法来创建成功业务的。而状态模式,是通过改变对象内部的状态来帮助对象控制自己的行为。状态模式允许内部状态改变时改变他的行为,对象看起来好像改变了他的类。这个模式将状态封装成独立的类,并将动作委托到代表当前状态的对象,这样行为会随着内部状态的改变而改变。策略原创 2017-01-11 22:16:59 · 288 阅读 · 0 评论 -
2016-12-28 单一职责原则+依赖倒转原则+里氏替换原则+开放封闭原则+接口隔离原则
单一职责原则SRPSingle responsibility principle 就一个类而言,应该只有一个导致其变化的原因。一个职责就是一个变化的轴线,一个类如果承担的职责过多,就等于将这些职责耦合在一起。一个职责的变化可能影响到其他职责。 什么事职责? 职责是“变化的原因”。 例如某一个类同时具有“连接”和“通信”两种职责转载 2016-12-28 15:04:14 · 1488 阅读 · 0 评论 -
2017-01-01 23种设计模式
01建造者模式 Builder pattern02代理模式 Proxy pattern (proxy |ˈprɒksi| n 代理人 委托书 代理权)03原型模式 Prototype pattern (prototype |ˈprəʊtətaɪp| n 原型 样品)04装饰模式 Decorator pattern (decorator |ˈ原创 2017-01-01 11:28:10 · 460 阅读 · 0 评论 -
2017-01-01 中介者模式
中介者模式Mediator Pattern 使用中介者模式(Mediator Pattern)来集中相关对象之间复杂的沟通和控制方式。 引入中介者 每个对象都会在自己的状态改变时,告诉中介者。 每个对象都会对中介者所发出的请求作出回应。 在没有中介者的情况下,所有的对象都需要认识其他对象,也就是说,对原创 2017-01-01 11:31:01 · 312 阅读 · 0 评论 -
2017-01-01 调停者模式
调停者模式http://www.jb51.net/article/63256.htmhttp://www.blogjava.net/amigoxie/archive/2007/04/14/110621.html《JAVA与模式》之调停者模式在阎宏博士的《JAVA与模式》一书中开头是这样描述调停者(Mediator)模式的: 调停者模式是对象的行为模式。调停转载 2017-01-01 11:39:41 · 341 阅读 · 0 评论 -
2016-12-28 外观模式 + 适配器模式
外观模式、门面模式示例:class Stock1 { // 股票1 public void Sell() { Console.WriteLine(“股票1卖出”); } public void Buy() { Console.WriteLine(“股票1买入”); }}转载 2016-12-28 15:54:14 · 347 阅读 · 0 评论 -
大话设计模式--第24章 加薪非要老总批?——责任链模式
第24章加薪非要老总批?——责任链模式 ¥:度娘:¥[责任链模式]是一种¥[设计模式]。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下¥[动态]地重新¥[组织]和¥[分配]责任。原创 2016-07-01 11:30:15 · 377 阅读 · 0 评论 -
大话设计模式--第23章 烤羊肉串引来的思考——命令模式
第23章烤羊肉串引来的思考——命令模式 以餐馆为例,若请求的实现者:厨师,既要去实现请求:去炒菜,又要对请求进行排队或纪录请求日志,以及支持可撤销的操作等,着显然会造成混乱,责任划分不明确。 同样以餐馆为例,行为请求着:客户,显然不必要了解行为实现过程,甚至不需要知道行为实现者是谁,只需要与服务员打交道即可。让服务员负责纪录请求,进行请求的纪录、撤销等更加合适。原创 2016-07-01 10:10:25 · 375 阅读 · 0 评论 -
大话设计模式-第04章 考研求职两不误-开放封闭原则
第04章考研求职两不误-开放封闭原则 开放-封闭原则(The Open-Closed Principle)或叫开-闭原则。 principle |ˈprɪnsəpl| noun原则、行为准则 开放-封闭原则,就是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。这个原则其实是有两个特征,一个是说‘对扩展是开放的(Open for原创 2016-05-31 09:09:10 · 437 阅读 · 0 评论 -
大话设计模式-第06章 穿什么有这么重要?--装饰模式
第06章穿什么有这么重要?--装饰模式6.2 小菜扮靓第一版“Person”类class Person{ private string name; public Person(string name) { this.name = name; } public原创 2016-06-05 22:15:53 · 366 阅读 · 0 评论 -
大话设计模式-第11章 无熟人难办事?--迪米特法则
第11章无熟人难办事?--迪米特法则11.1 第一天上班11.2 无熟人难办事11.3 迪米特法则 迪米特法则,也叫做最少知识原则,如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某个方法的话,可以通过第三者转发这个调用。 迪米特法则首先强调的是在类的结构设计上,每一个类都应当尽量降低成员的原创 2016-06-12 15:52:58 · 388 阅读 · 0 评论 -
大话设计模式-第10章 考题抄错会做也白搭--模板方法模式
第10章考题抄错会做也白搭--模板方法模式10.2 重复=易错+难改//学生甲抄的试卷class TestPaperA{ //试题1 public void TestQuestion1() { Console.WriteLine(“杨过得到,后来给了郭靖,练成倚天剑、屠龙刀的玄铁可能是[] a.球磨原创 2016-06-12 15:56:21 · 450 阅读 · 0 评论 -
大话设计模式-第09章 简历复印--原型模式
第09章简历复印--原型模式9.2 简历代码初步实现//简历class Resume{ private string name; private string sex; private string age; private string timeAreas; private string c原创 2016-06-12 15:58:06 · 427 阅读 · 0 评论 -
大话设计模式-第08章 雷锋依然在人间--工厂方法模式
第08章雷锋依然在人间--工厂方法模式8.2 简单工厂模式实现class OperationFactory{ public static Operation createOperate(string operate) { Operation Oper = null; switch原创 2016-06-12 15:59:42 · 639 阅读 · 0 评论 -
大话设计模式-第07章 为别人做嫁衣--代理模式
第07章为别人做嫁衣--代理模式7.2 没有代理的代码追求者类:class Pursuit{ SchoolGirl mm; public Pursuit(SchoolGirl mm) { this.mm = mm; } public void GiveDolls()原创 2016-06-12 16:01:27 · 395 阅读 · 0 评论 -
大话设计模式-第12章 牛市股票还会亏钱?--外观模式
第12章牛市股票还会亏钱?--外观模式12.2 股民炒股代码//股票1class Stock1{ //卖股票 public void Sell() { Console.WriteLine(“股票1卖出”); } //买股票 p原创 2016-06-13 22:05:07 · 423 阅读 · 0 评论 -
大话设计模式-第13章 好菜每回味不同--建造者模式
第13章好菜每回味不同--建造者模式13.2 炒面没放盐 “今天我就吃了两盘垃圾,其实这里面最关键的就在于我们是吃的爽还是吃的难受都要依赖于厨师。你再想想我们设计模式的原则?” “啊,你的意思是依赖倒转原则?抽象不应该依赖细节,细节应该依赖于抽象,由于我们要吃的菜都依赖于厨师这样的细节,所以我们很被动。” “老麦老肯他们的产品的,味道是由什么决原创 2016-06-14 12:14:32 · 487 阅读 · 0 评论 -
大话设计模式-第14章 老板回来,我不知道--观察模式
第14章老板回来,我不知道--观察模式14.1 老板回来?我不知道!14.2 双向耦合代码class Secretary{ //同事列表 private IList observers = new List(); private string action; //增加 public void原创 2016-06-15 14:15:47 · 410 阅读 · 0 评论 -
大话设计模式-第16章 无尽加班何时休-状态模式
第16章无尽加班何时休-状态模式16.2 工作状态-函数版函数版:static int Hour = 0;//钟点static bool WorkFinished = false;//任务完成标记//写程序方法public static void WriteProgram(){ if (Hour {原创 2016-06-17 11:13:26 · 452 阅读 · 0 评论 -
大话设计模式-第18章 如果再回到从前----备忘录模式
第18章如果再回到从前----备忘录模式18.2 游戏存进度游戏角色类class GameRole{ //生命力 private int vit; public int Vitality { get { return vit; } set { vit = valu原创 2016-06-20 22:55:39 · 442 阅读 · 0 评论 -
大话设计模式-第19章 分公司=一部分--组合模式
第19章分公司=一部分--组合模式19.1 分公司不就是以部门吗? 整体与部分可以被一致对待的问题。19.2 组合模式 组合模式(Composite),将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。Component为组合中的对象声明接口,在适当情况下原创 2016-06-23 12:32:59 · 464 阅读 · 0 评论 -
大话设计模式--第21章 有些类也需要计划生育--单例模式
第21章有些类也需要计划生育--单例模式21.3 生还是不生是自己的责任21.4 单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。通常我们可以设置一个全局变量使得这一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例被创建,并且它可以提供一个原创 2016-07-01 08:32:50 · 414 阅读 · 0 评论 -
大话设计模式--第20章 想走?可以!先买票--迭代器模式
第20章想走?可以!先买票--迭代器模式迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。当你需要访问一个聚焦对象,而且不管这些对象是什么都需要遍历的时候,你就应该考虑用迭代器模式。你需要对聚焦有多种方式遍历时,可以考虑使用迭代器模式。为遍历不同的聚集结构提供如开始、下一个、是否结束、当前哪一项等统一原创 2016-07-01 08:34:32 · 289 阅读 · 0 评论 -
大话设计模式--第22章 手机软件何时统一--桥接模式
第22章手机软件何时统一--桥接模式22.3 合成/聚合复用原则对象的继承关系在编译时就定义好了,所以无法在运行时改变从父类继承的实现。子类的实现与他的父类有非常紧密的依赖关系,以至于父类实现中的任何变化必然导致子类发生变化。当你需要复用子类时,如果继承下来的实现不适合解决新的问题,则父类必须重写或被其他更适合的类替代。这种依赖关系限制了灵活性并最终限制了复用。原创 2016-07-01 09:19:07 · 324 阅读 · 0 评论 -
2016-12-28 迪米特法则+依赖倒转原则+里氏替换原则
依赖倒转原则 依赖倒转原则,也翻译成依赖倒置原则,抽象不应该依赖细节,细节应该依赖于抽象,要针对接口编程,而不是对实现编程。如电脑中无论主板、CPU、内存、硬盘都是针对接口设计的,PC电脑硬件的发展,和面向对象思想发展是完全类似的。 依赖倒转原则(为什么称为倒转呢,因为传统的设计中底层提供接口,高层根据底层的接口实现功能) A.高层模块不应该依赖底原创 2017-01-26 22:32:05 · 1030 阅读 · 0 评论