设计模式
Liu610921
这个作者很懒,什么都没留下…
展开
-
HeadFirst设计模式_读书笔记_010_状态模式
状态模式:允许对象在内部状态改变的时候改变它的行为。 例如: 我们在12306上买票,行为是卖票,状态有两个,有余票则出票成功,余票不足就出票失败。public class Station { public State state; private int tickets = 0; public Station(int tickets) { this.tickets = ticket...原创 2017-04-11 10:25:06 · 281 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_002_观察者模式
1.实际问题 还是拿传统的订报纸业务举例吧。虽然现在看报纸的人越来越少了。现在要我们给报社做一个用,只要用户订阅了报纸,一旦有新的报纸出来了就要送给客户。用户退订了就不用送了。 老师叫我们面向对象编程,那么这个问题的对象有哪些呢? 报社:新的报纸可以当作是它的一个状态,一旦报纸有更新,就要推给用户。 用户:用户是另外一个对象。并且很明显,它依赖报社报纸的更新。只有报社里面有新...原创 2017-04-11 10:23:29 · 244 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_003_装饰者模式
1.问题的引入: 有时候我们需要动态地扩展对象的功能。比如现在给快餐店编写一菜单程序。主食和菜品可以互相搭配,我们要怎么确立餐厅需要的各种菜单类呢? 首先我们尝试下类的继承能不能解决问题: 主食和菜是两个接口,任何一个菜单里面都应该搭配主食和菜,那我们就把所有的搭配都定义成类。菜单是一个实现了这两个接口的超类,任何一种特定的主食+菜式搭配都可以定义一个新类,继承菜单这个超类就可以了。 ...原创 2017-04-11 10:23:38 · 216 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_004_单例模式
单例模式:确保一个类只有一个实例,并提供一个全局访问点。通常被用来管理公共资源。例如,数据库连接池或是线程池。public class Singleton { private static Singleton instance; private Singleton() { System.out.println("There is only on Singleton "); }...原创 2017-04-11 10:24:13 · 182 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_005_命令模式
命令模式:允许将发出请求的对象和接受并执行这些请求的对象分割开来,即实现请求调用者和请求接受者之间的解耦。定义:将请求封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。 调用命令的是Invoker,执行命令的实际上是Receiver。通过命令模式,将各种动作封装成Command,实现了Invoker和Receiver的彻底解耦。Invoker只管发出命令,Receiver只管执行相应的...原创 2017-04-11 10:24:22 · 298 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_006_适配器模式
适配器模式:将一个类的接口装换成另一个客户期望的接口,让原本两个不同的类使用起来像是一个类。分为类的适配器和对象的适配器。 对象的适配器:使用组合的方式达到适配的效果。 public interface Target { public void run();} public class Dog implements Target{ @Override public void run()...原创 2017-04-11 10:24:31 · 196 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_007_外观模式
外观模式:提供了一个统一的接口,用来访问子系统中的一群接口或者一个很大的接口,总之外观模式的目的是简化并统一其他的接口。与适配器不同的是,它不会修改其他的接口,只是将客户从一个复杂的子系统中解耦出来。 public class Airconditioner { int tempture; public void turnOn() { System.out.println("开空调")...原创 2017-04-11 10:24:39 · 217 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_008_模板方法
模板方法模式:在一个方法中定义了一个算法的骨架,而将实现延迟到子类中。模板方法使得子类在不改变算法结构的同时提供自己的特定实现。 public abstract class Templet { public void prepareDinner() { buyGroceries(); washgroceries(); choppingVegetables(); cook()...原创 2017-04-11 10:24:46 · 211 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_009_ 组合模式
组合模式:允许将对象组合成树形结构来表现“整体/部分”的结构,让用户可以用一致的方式处理个别对象以及组合对象。 public abstract class Node { protected String name; protected String desc; public Node(String desc, String name) { this.name = name; th...原创 2017-04-11 10:24:59 · 198 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_001_策略模式
1.引出策略模式: Joe上班的公司设计了一款模拟鸭子各种行为的游戏,游戏当中出现了各种各样的鸭子。 鸭子有很多行为,例如:在屏幕上显示、叫、游泳等。 因为有很多种类型的鸭子,最开始大部分行为差不多,当然显示肯定是不一样的。所以我们很自然的想到了用继承解决问题,我们可以定义一个鸭子的父类。每种类型的鸭子都继承它就可以了。 这样可以很好的复用代码,一段时间内也确实是可行的...原创 2017-04-11 10:23:22 · 207 阅读 · 0 评论