2.Java设计模式
文章平均质量分 63
Liu610921
这个作者很懒,什么都没留下…
展开
-
HeadFirst设计模式_读书笔记_004_单例模式
单例模式:确保一个类只有一个实例,并提供一个全局访问点。通常被用来管理公共资源。例如,数据库连接池或是线程池。 public class Singleton { private static Singleton instance; private Singleton() { System.out.println("There is only on Singleto...2017-03-27 14:06:18 · 92 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_003_装饰者模式
的各种菜单类呢? 首先我们尝试下类的继承能不能解决问题: 主食和菜是两个接口,任何一个菜单里面都应该搭配主食和菜,那我们就把所有的搭配都定义成类。菜单是一个实现了这两个接口的超类,任何一种特定的主食+菜式搭配都可以定义一个新类,继承菜单这个超类就可以了。 这样写肯定是会被老大骂的,主食和菜式特别多的时候,类的数量级也特别大。维护量太大。三种主食,20种菜的话就是六十个类。哪天新加一种主食,开发得写20个类,还是在一个主食只能搭配一种菜式这种最简单的情况下,不利于扩展,p原创 2017-03-10 11:42:21 · 71 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_004_工厂方法模式&抽象工厂模式
原创 2017-03-13 21:01:15 · 94 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_004_单例模式
ivate static Singleton instance; private Singleton() { System.out.println("There is only on Singleton "); } public static Singleton getInstance() { if(instance == null) { instance = new Singleton(); } return ins2017-03-27 14:06:18 · 57 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_005_命令模式
便使用不同的请求、队列或者日志来参数化其他对象。 调用命令的是Invoker,执行命令的实际上是Receiver。通过命令模式,将各种动作封装成Command,实现了Invoker和Receiver的彻底解耦。Invoker只管发出命令,Receiver只管执行相应的操作。 public interface Command { public void execute(); } public class Dog { public void foundBone() {2017-03-27 15:17:25 · 79 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_006_适配器模式
适配器:使用组合的方式达到适配的效果。 public interface Target { public void run(); } public class Dog implements Target{ @Override public void run() { System.out.println("狗狗在地上跑"); } } public class Fish { public void swim()原创 2017-03-27 16:28:11 · 120 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_007_外观模式
2017-03-28 14:30:39 · 72 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_008_模板方法
public abstract class Templet { public void prepareDinner() { buyGroceries(); washgroceries(); choppingVegetables(); cook(); } abstract void buyGroceries(); public void washgroceries() { System.out.println("洗菜了~~&qu2017-03-28 15:22:29 · 92 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_009_ 组合模式
protected String name; protected String desc; public Node(String desc, String name) { this.name = name; this.desc = desc; } public void addChild(Node node) { throw new UnsupportedOperationException(); } public void removeC2017-03-30 15:55:31 · 93 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_002_观察者模式
纸出来了就要送给客户。用户退订了就不用送了。 老师叫我们面向对象编程,那么这个问题的对象有哪些呢? 报社:新的报纸可以当作是它的一个状态,一旦报纸有更新,就要推给用户。 用户:用户是另外一个对象。并且很明显,它依赖报社报纸的更新。只有报社里面有新的报纸它才能收到。 这个问题还有什么特殊的地方吗?对了,报社只有一个,但是用户可能有多个。这是一个典型的一对多的关系。并且他们存在依赖,报社有新的报纸,用户应该及时收到,毕竟谁也不想花钱去看过时的旧闻吧。而且用户可以随时2017-03-08 22:38:13 · 90 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_001_策略模式
2017-03-07 23:13:10 · 82 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_003_装饰者模式
1.问题的引入: 有时候我们需要动态地扩展对象的功能。比如现在给快餐店编写一菜单程序。主食和菜品可以互相搭配,我们要怎么确立餐厅需要的各种菜单类呢? 首先我们尝试下类的继承能不能解决问题: 主食和菜是两个接口,任何一个菜单里面都应该搭配主食和菜,那我们就把所有的搭配都定义成类。菜单是一个实现了这两个接口的超类,任何一种特定的主食+菜式搭配都可以定义一个新类,继承菜单这...原创 2017-03-10 11:42:21 · 145 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_005_命令模式
命令模式:允许将发出请求的对象和接受并执行这些请求的对象分割开来,即实现请求调用者和请求接受者之间的解耦。定义:将请求封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。 调用命令的是Invoker,执行命令的实际上是Receiver。通过命令模式,将各种动作封装成Command,实现了Invoker和Receiver的彻底解耦。Invoker只管发出命令,Receiver只...2017-03-27 15:17:25 · 102 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_006_适配器模式
适配器模式:将一个类的接口装换成另一个客户期望的接口,让原本两个不同的类使用起来像是一个类。分为类的适配器和对象的适配器。 对象的适配器:使用组合的方式达到适配的效果。 public interface Target { public void run(); } public class Dog implements Target{ @Override...原创 2017-03-27 16:28:11 · 82 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_007_外观模式
外观模式:提供了一个统一的接口,用来访问子系统中的一群接口或者一个很大的接口,总之外观模式的目的是简化并统一其他的接口。与适配器不同的是,它不会修改其他的接口,只是将客户从一个复杂的子系统中解耦出来。 public class Airconditioner { int tempture; public void turnOn() { System.out.prin...2017-03-28 14:30:39 · 82 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_008_模板方法
模板方法模式:在一个方法中定义了一个算法的骨架,而将实现延迟到子类中。模板方法使得子类在不改变算法结构的同时提供自己的特定实现。 public abstract class Templet { public void prepareDinner() { buyGroceries(); washgroceries(); choppingVegetables...2017-03-28 15:22:29 · 95 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_009_ 组合模式
组合模式:允许将对象组合成树形结构来表现“整体/部分”的结构,让用户可以用一致的方式处理个别对象以及组合对象。 public abstract class Node { protected String name; protected String desc; public Node(String desc, String name) { this.name =...2017-03-30 15:55:31 · 63 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_010_状态模式
状态模式:允许对象在内部状态改变的时候改变它的行为。 例如: 我们在12306上买票,行为是卖票,状态有两个,有余票则出票成功,余票不足就出票失败。 public class Station { public State state; private int tickets = 0; public Station(int tickets) { this.t...2017-03-30 17:17:43 · 113 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_001_策略模式
1.引出策略模式: Joe上班的公司设计了一款模拟鸭子各种行为的游戏,游戏当中出现了各种各样的鸭子。 鸭子有很多行为,例如:在屏幕上显示、叫、游泳等。 因为有很多种类型的鸭子,最开始大部分行为差不多,当然显示肯定是不一样的。所以我们很自然的想到了用继承解决问题,我们可以定义一个鸭子的父类。每种类型的鸭子都继承它就可以了。 这样可以很好的复用代码,...2017-03-07 23:13:10 · 81 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_002_观察者模式
1.实际问题 还是拿传统的订报纸业务举例吧。虽然现在看报纸的人越来越少了。现在要我们给报社做一个用,只要用户订阅了报纸,一旦有新的报纸出来了就要送给客户。用户退订了就不用送了。 老师叫我们面向对象编程,那么这个问题的对象有哪些呢? 报社:新的报纸可以当作是它的一个状态,一旦报纸有更新,就要推给用户。 用户:用户是另外一个对象。并且很明显,它依赖报社报纸的更...2017-03-08 22:38:13 · 107 阅读 · 0 评论 -
HeadFirst设计模式_读书笔记_010_状态模式
2017-03-30 17:17:43 · 66 阅读 · 0 评论