设计模式学习
benhuo931115
这个作者很懒,什么都没留下…
展开
-
《Head Frist 设计模式》学习笔记——观察者模式
《Head Frist 设计模式》学习笔记——观察者模式1.主题+观察者=观察者模式2.观察者模式定义观察者模式定义了对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。3.定义观察者模式优点:观察者模式提供了一种对象设计,让主题和观察者之间松耦合。主题只知道观察者实现了某个接口,不需要知道观察者的具体类是谁、做了哪些操作。任何时候我们都可以增加新的观察者,或删除原创 2016-05-16 21:02:09 · 570 阅读 · 0 评论 -
《Head First 设计模式》学习笔记——单件(例)模式
《Head First 设计模式》学习笔记——单件(例)模式1.定义确保一个类只有一个实例,并提供一个全局访问点2.为什么需要单件模式?有一些对象我们只需要一个,如:线程池、缓存、对话框、注册表、日志对象、驱动程序对象等。事实上,这些对象只能有一个实例,如果制造出多个实例就会导致许多问题,如:程序的行为异常、资源使用过量,或者是不一致的结果3.使用静态变量作为全局变量的缺点必须在程序一开始就创建好原创 2016-05-22 11:11:24 · 537 阅读 · 0 评论 -
《Head First 设计模式》学习笔记——模板方法模式
模板方法模式eg: 要写一段程序实现泡茶和泡咖啡,方法如下:泡茶的方法:1.把水煮沸2.用沸水浸泡茶叶3.把茶倒进杯子4.加柠檬泡咖啡的方法:1.把水煮沸2.用沸水冲泡咖啡3.把咖啡倒进杯子4.加糖和牛奶通过观察,我们可以发现这两种饮料的冲泡都采用了相同的算法:1.把水煮沸2.用热水泡咖啡或茶3.把饮料倒进杯子里4.在饮料内加入适当的调料所以我们很自然的就会想到通过将公共的原创 2016-06-05 11:00:35 · 585 阅读 · 0 评论 -
《Head First 设计模式》学习笔记——装饰者模式
《Head First 设计模式》学习笔记——装饰者模式概念动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案eg:当我们需要设计一个饮料的订单系统,一般我们会先设计一个基类Beverage(饮料)而当我们设计咖啡、果汁、奶茶这样具体的类时会采用继承的方式,并重写方法。但是客户在购买咖啡时可能会有各种各样的需求,比如:加奶,加豆浆,加摩卡等,而这些调料需要收取不同的费用这个原创 2016-07-17 22:53:13 · 581 阅读 · 0 评论 -
《大话设计模式》——学习笔记之面向对象原则&UML类图
《大话设计模式》——学习笔记之面向对象原则单一职责原则定义: 就一个类而言,应该仅有一个引起它变化的原因如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或抑制这个类完成其他职责的能力,这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏软件设计真正要做的许多内容,就是发现职责并把这些职责相互分离,如果能够想到多于一个的动机去改变一个类,那么这个类就具有多于原创 2017-10-18 13:48:52 · 537 阅读 · 2 评论 -
《大话设计模式》——学习笔记之"结构型模式"(适配器&装饰&桥接&组合&亨元&代理&外观)
《大话设计模式》——学习笔记之”结构型模式”(适配器&装饰&桥接&组合&亨元&代理&外观)适配器模式定义:适配器模式(Adapter),将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作Target,客户所期望的接口class Target{ public virtual void Request(){ Co原创 2017-10-13 21:18:59 · 427 阅读 · 0 评论 -
《大话设计模式》——学习笔记之"行为型模式"(观察者&模板方法&命令&状态&职责链&解释器&中介者&访问者&策略&备忘录&迭代器)
《大话设计模式》——学习笔记之”行为型模式”(观察者&模板方法&命令&状态&职责链&解释器&中介者&访问者&策略&备忘录&迭代器)观察者模式定义: 定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己Subject类,主题或抽象通知者abstract class Subject{ private ILi原创 2017-10-15 15:15:29 · 589 阅读 · 0 评论