Java 设计模式
源码下载: https://github.com/nai-chen/JavaBlog
假装你是大灰狼
移动端工程师
展开
-
Java 设计模式之代理模式
本文为笔者学习《Head First设计模式》的笔记,并加入笔者自己的理解和归纳总结代理模式为另一个对象提供一个替身或占位符以控制对这个对象的访问。结构图IService提供了一项服务sayHello,具体由MyService实现,而ServiceProxy可以起到一个控制的作用public interface IService { String sayHello(); }...原创 2019-01-04 08:47:03 · 183 阅读 · 0 评论 -
Java 设计模式之状态模式
本文为笔者学习《Head First设计模式》的笔记,并加入笔者自己的理解和归纳总结状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。结构图状态图播放器(MediaPlayer)最初状态(PrepareState),点击播放可进入播放状态(PlayState)。播放状态(PlayState)点击暂停可进入暂停状态(PauseState),或者点击停止进入停...原创 2019-01-04 08:45:40 · 256 阅读 · 0 评论 -
Java 设计模式之组合模式
本文为笔者学习《Head First设计模式》的笔记,并加入笔者自己的理解和归纳总结组合模式允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合让客户以一致的方式处理个别对象以及对象组合。结构图菜单(Menu)有两个子类,一个是菜单项(MenuItem),另一个是包含菜单项的菜单(MenuComposite)。print方法用于输出菜单。public abstract class...原创 2019-01-04 08:44:04 · 167 阅读 · 0 评论 -
Java 设计模式之迭代器模式
本文为笔者学习《Head First设计模式》的笔记,并加入笔者自己的理解和归纳总结迭代器模式提供了一种方法顺序访问一个聚合对象中的各个元素,而不是暴露其内部的表示。构造器有两个商店,分别采用数组(ArrayStore)和列表(ListStore)的方式存储商品。但为了访问方便,都会生成一个迭代器(Iterator)。public interface Iterator { boo...原创 2019-01-04 08:42:41 · 228 阅读 · 0 评论 -
Java 设计模式之模板方法模式
本文为笔者学习《Head First设计模式》的笔记,并加入笔者自己的理解和归纳总结模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。结构图图形(Shape)里的draw方法,分别调用drawBackground、drawBound和drawShape方法。drawShape方法由子类自己完成。p...原创 2019-01-03 08:48:27 · 243 阅读 · 0 评论 -
Java 设计模式之外观模式
本文为笔者学习《Head First设计模式》的笔记,并加入笔者自己的理解和归纳总结外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高级接口,让子系统更容易使用。结构图某人(People)上班时需要骑10分钟自行车(Bicycle),坐40分钟公交车(Bus),最后步行(Walk)5分钟到公司。public interface Traffic { void...原创 2019-01-03 08:46:15 · 163 阅读 · 1 评论 -
Java 设计模式之适配器模式
本文为笔者学习《Head First设计模式》的笔记,并加入笔者自己的理解和归纳总结适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器将原本接口不兼容的类可以合作无间。适配器模式有两种形式:对象适配器和类适配器。结构图鸟儿(Bird)都可以飞翔,例如麻雀(Sparrow),直升机(Helicopter)也可以,通过适配器(Adapter)可以将直升机伪装成鸟。public in...原创 2019-01-03 08:44:34 · 203 阅读 · 1 评论 -
Java 设计模式之命令模式
本文为笔者学习《Head First设计模式》的笔记,并加入笔者自己的理解和归纳总结命令模式将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。结构图遥控器(RemoteControl)通过命令(Command)控制灯的开关(Light)。public class RemoteControl { private Command c...原创 2019-01-03 08:42:45 · 201 阅读 · 0 评论 -
Java 设计模式之单例模式
本文为笔者学习《Head First设计模式》的笔记,并加入笔者自己的理解和归纳总结单例模式确保一个类只有一个实例,并提供一个全局访问点。结构图恶汉模式public class Singleton { private static Singleton INSTANCE = new Singleton(); private Singleton() { } ...原创 2019-01-02 14:43:42 · 173 阅读 · 1 评论 -
Java 设计模式之抽象工厂模式
本文为笔者学习《Head First设计模式》的笔记,并加入笔者自己的理解和归纳总结抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。结构图不同的车(Car)拥有不同的轮胎(Tyre),由不同轮胎工厂(TyreFactory)创建。public abstract class Car { String name; Tyre tyre; ...原创 2019-01-02 14:40:59 · 226 阅读 · 1 评论 -
Java 设计模式之工厂方法模式
本文为笔者学习《Head First设计模式》的笔记,并加入笔者自己的理解和归纳总结工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。结构图不同的车(Car)拥有不同的轮胎(Tyre)public abstract class Car { String name; Tyre tyre; public Car(...原创 2019-01-02 14:39:20 · 200 阅读 · 1 评论 -
Java 设计模式之装饰者模式
本文为笔者学习《Head First设计模式》的笔记,并加入笔者自己的理解和归纳总结装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。结构图鸡尾酒Cocktail一般以伏特加(Vodka)、威士忌(Whisky)等烈酒或是葡萄酒作为基酒,再配以柠檬汁(LemonJuice)、石榴汁(PomegranateJuice)、蒸馏水(DistilledWate...原创 2019-01-02 14:36:43 · 219 阅读 · 1 评论 -
Java 设计模式之观察者模式
本文为笔者学习《Head First设计模式》的笔记,并加入笔者自己的理解和归纳总结观察者模式定义了对象之间一对多依赖,当一个对象改变状态时,它的所有依赖者都会受到通知并自动更新。结构图可观察者(Observable)public interface Observable { public void addObserver(Observer observer); pu...原创 2019-01-02 14:33:00 · 163 阅读 · 1 评论 -
Java 设计模式之策略模式
本文为笔者学习《Head First设计模式》的笔记,并加入笔者自己的理解和归纳总结策略模式定义了算法族,分别封装起来,让它们之间可以相互替代,此模式让算法的变化独立于使用算法的客户。结构图交通策略(TrafficStrategy)。public interface ITrafficStrategy { void run();}实现三种交通策略,开车(CarStrategy...原创 2019-01-02 14:27:29 · 168 阅读 · 1 评论 -
Java 设计模式
本文为笔者学习《Head First设计模式》的笔记,并加入笔者自己的理解和归纳总结模式模式是在某情境下,针对某问题的某种解决方案。策略模式(Strategy)定义了算法族,分别封装起来,让它们之间可以相互替代,此模式让算法的变化独立于使用算法的客户。观察者模式(Observer)定义了对象之间一对多依赖,当一个对象改变状态时,它的所有依赖者都会受到通知并自动更新。装饰者模式...原创 2019-01-02 14:26:28 · 241 阅读 · 1 评论