设计模式
文章平均质量分 55
龙飞雨
这个作者很懒,什么都没留下…
展开
-
策略模式
策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。[]类图[]策略模式的实现飞行为接口 public interface FlyBehavior { void fly(); }飞行为实现类 public class FlyWithWings implements FlyBehavior { @Override原创 2017-11-05 13:51:02 · 147 阅读 · 0 评论 -
Data Binding与MVVM模式
()Data BindingDatabinding 是一个实现数据和UI绑定的框架,不是MVVM模式,而是一个实现 MVVM 模式的工具。Data Binding可以参考下列资料来学习 Google官方文档 https://developer.android.com/topic/libraries/data-binding/index.html棉花糖给Android带来的Data原创 2017-12-31 22:48:58 · 258 阅读 · 0 评论 -
工厂方法模式
工厂方法模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个,工厂方法让类把实例化推迟到子类。[]类图()工厂方法模式类图![这里写图片描述](http://img.blog.csdn.net/20160423134556273)()抽象工厂模式类图![这里写图片描述](http://img.blog.csdn.net/20160423134615633)[]工厂方法模式的实现原创 2017-11-11 10:47:18 · 212 阅读 · 0 评论 -
单例模式
单例模式:确保一个类只有一个实例,并提供访问这个实例的全局点。常用来管理共享的资源,例如:数据库连接或者线程池。[]类图[]单例模式的实现()延迟实例化public class Singleton {private static Singleton uniqueInstance;private Singleton() {}public static Single...原创 2017-11-05 13:45:06 · 213 阅读 · 0 评论 -
模版方法模式
模版方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中,模版方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。模版就是一个方法,确切的来说,这个方法将算法定义成一组步骤,其中的任何步骤都可以是抽象的,由子类负责实现。这可以确保算法的结构保持不变,同时由子类提供部分实现。[]类图![这里写图片描述](http://img.blog.csdn.net/201704172239原创 2017-11-11 10:42:40 · 182 阅读 · 0 评论 -
代理模式
代理模式:为另一个对象提供一个替身或占位符以控制对这个对象的访问。[]类图()远程代理模式类图![这里写图片描述](http://img.blog.csdn.net/20160423135115913)()保护代理模式类图![这里写图片描述](http://img.blog.csdn.net/20160423135130366)[]代理模式的实现()远程代理的实现(采用RMI来实现)原创 2017-11-16 23:01:53 · 219 阅读 · 0 评论 -
状态模式
状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。把状态封装成为独立的类,并将动作委托到代表当前状态的对象。[]类图![这里写图片描述](http://img.blog.csdn.net/20160423135050491)[]状态模式的实现状态接口 public interface State { void insertQuarter(); vo原创 2017-11-11 10:46:17 · 188 阅读 · 0 评论 -
迭代器与组合模式
迭代器模式:提供一种方法顺序访问一个集合对象中的各个元素,而又不暴露其内部的表示。[]类图迭代器模式类图![这里写图片描述](http://img.blog.csdn.net/20160423135027835)组合模式类图![这里写图片描述](http://img.blog.csdn.net/20160423135040397)[]迭代器模式的实现菜单项实体 public class原创 2017-11-11 10:45:10 · 422 阅读 · 1 评论 -
适配器与外观模式
适配器模式:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。[]类图对象适配器模式类图![这里写图片描述](http://img.blog.csdn.net/20160423134747865)类适配器模式类图![这里写图片描述](http://img.blog.csdn.net/20160423134800756)外观模式类图![这里写图片描述](ht原创 2017-11-05 13:49:28 · 242 阅读 · 0 评论 -
命令模式
命令模式:将"请求"封装成对象,以便使用不同的请求,队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。一个命令对象通过在特定接受者上绑定一组动作来封装一个请求,要达到这一点,命令对象将动作和接受者包装进对象中。这个对象只暴露一个execute(),当此方法被调用的时候,接受者就会进行这些动作。[]类图![这里写图片描述](http://img.blog.csdn.net/2016042313471原创 2017-11-08 23:55:09 · 159 阅读 · 0 评论 -
装饰者模式
装饰者模式:动态地将责任附加到对象上,如果要扩展功能,装饰者提供了比继承更具有弹性的替代方案。[]类图![这里写图片描述](http://img.blog.csdn.net/20160423134535367)[]装饰者模式的实现抽象基类 public abstract class Beverage { protected String description = "Unknown Be原创 2017-11-08 22:34:48 · 166 阅读 · 0 评论 -
观察者模式
观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。被观察者和观察者定义了一对多的关系,观察者依赖于被观察者,被观察者对象管理某些数据,一旦数据发生改变,新的数据会以某种形式送给观察者对象。[]类图![这里写图片描述](http://img.blog.csdn.net/20160423134415989)[]观察者模式的实现 ()自定义观原创 2017-11-05 13:46:02 · 154 阅读 · 0 评论 -
设计原则
[]找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起如果每次新的需求一来,都会使某方面的代码发生变化,那么你就可以确定,这部分的代码需要被抽出来,和其他稳定的代码有所区分。[]针对接口编程,而不是针对实现编程接口编程关键就在于多态,利用多态,程序可以针对超类型编程,执行时会根据实际状况执行到真正的行为,不会被绑死在超类型的行为上。[]多用组合,少用继承使用组合建立系统原创 2017-11-05 13:44:01 · 167 阅读 · 0 评论 -
MPC MVP 模式
[]MPC模式()视图用来呈现模型,视图通常直接从模型中取得它需要显示的状态与数据。()控制器取得用户的输入并解读其对模型的意思。()模型持有所有的数据,状态,和程序逻辑。模型没有注意到视图和控制器,虽然它提供了操作和检索状态的接口,并发送状态改变通知观察者。()模型使用观察者模式,以便观察者更新,同时保持两者之间解耦。()控制器是视图的策略,视图可以使用不同的控制器实现,原创 2017-03-21 21:50:23 · 904 阅读 · 0 评论