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