![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
记忆之城、
Android开发之路点滴
展开
-
设计模式之模板方法模式
什么是模板方法模式 定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 总的来说,模板模式就是通过抽象类来定义一个逻辑模板,逻辑框架、逻辑原型,然后将无法决定的部分抽象成抽象方法交由子类来实现。这么看来,模板就是定义一个框架,比如盖房子,我们定义一个模板:房子建造需要地基、墙壁、门、窗等等,但是要什么样的门,什么样的窗,这些并不在模板中描述,这个交给子类来实现。 建造房屋例子 模板抽象类:HouseTemplate public ab原创 2020-07-27 09:17:30 · 139 阅读 · 0 评论 -
设计模式之代理模式
概述 代理模式是为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式有两种,静态代理和动态代理。 涉及角色 抽象角色:声明真实对象和代理对象的共同接口。 代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替真实对象。同时,代理对象可以在执行真实对象操作时,附加其他的操作,相当于对真实对象进行封装。 真实角色:代理角原创 2020-07-21 15:23:03 · 91 阅读 · 0 评论 -
Java单例模式的思考
单例模式的特征 私有的构造函数 提供静态变量 提供静态的获取实例方法 单例模式六种写法 饿汉式单例模式 public class Singleton { private static Singleton sInstance = new Singleton(); private Singleton() { } pu原创 2020-07-06 21:59:40 · 141 阅读 · 0 评论 -
设计模式之观察者模式
观察者设计模式 观察者模式定义了对象间的一对多依赖。具体可以描述为一个主题对象依赖多个观察者对象,那么当主题发生变化的时候,就可以通知到所有的观察者,通常也称主题对象为被观察者对象。 上面的定义较为理论化,举一个现实生活中的例子,在早期,我们获取新闻都是通过看报的方式,我们需要到报刊订阅我们想要的新闻,当报刊有新闻发布时,这时候会通知到我们。 简单说就是我们订阅了报刊新闻,当报刊新闻有发布的时候,这时候会通知到我们,所以观察者模式也称为发布-订阅模式 由此得知,我们如果要实现一个观察者模式,所需要的角色有哪原创 2020-07-10 22:49:26 · 144 阅读 · 0 评论 -
设计模式之建造者模式
建造者模式提供对象的灵活构建 建造者设计模式将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示 怎么理解这句话呢?其实多读两遍也就理解了,我们知道对象是由多个属性构造的,尤其是构造一个复杂对象,那么它包含的属性更多,比如我现在构建一个Person对象。 思考一下Person对象有哪些属性呢?姓名、年龄、性别、爱好、学历等。其中姓名、年龄和性别那是必要属性,没它不行啊。至于爱好、学历可有无,那么Person类声明如下 public class Person{ String name;原创 2020-07-13 21:24:03 · 114 阅读 · 0 评论 -
设计模式之责任链模式
简介 责任链模式为请求创建一个接收者对象链,每个接收者都包含对另一个接收者的引用,如果一个对象不能处理该请求,那么它会把请求传给下一个接收者,依此类推。 责任链模式避免了请求的发送者和接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连成一条链,并且沿着这条链传递请求,直到有对象处理它为止。 优缺点 优点:降低耦合度。它将请求的发送者和接收者解耦 简化了对象,使得对象不需要知道链的结构 ,增强给对象指派职责的灵活性,允许动态地新增或者删除责任链,增加新的请求处理类方便。 缺点:不能保证请求一定被原创 2020-07-17 23:15:15 · 116 阅读 · 0 评论