Java 设计模式
p0150n0us
这个作者很懒,什么都没留下…
展开
-
Java 设计模式 10 —— 迭代器模式
单例模式定义提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。对于迭代器(Iterator),Java 语言本身就提供了这样一个接口。public interface Iterator<E> { boolean hasNext(); E next(); default void remove() { thr...原创 2020-01-17 13:01:40 · 69 阅读 · 0 评论 -
Java 设计模式 9 —— 模板方法模式
模板方法模式定义在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。结构AbstractClass:包含了模板方法和两个模板方法所用到的抽象函数。templeteMethod():调用了两个抽象函数。void templeteMethod() { primitiveOperation1();...原创 2020-01-17 12:58:24 · 92 阅读 · 0 评论 -
Java 设计模式 8 —— 外观模式
外观模式定义提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口,让子系统更容易使用。结构SubSystem*:子系统,它们内部的接口可以按某种次序调用来访问数据资源。Facade:这个外观类为子系统提供一个共同的对外接口。Client:客户对象通过一个外观接口读写子系统中各接口的数据资源。应用A...原创 2020-01-17 12:55:25 · 129 阅读 · 0 评论 -
Java 设计模式 7 —— 适配器模式
适配器模式定义将一个类的接口,装换成客户期望的另一个接口。 让原本不兼容的类可以合作无间。保留现有的接口,通过使用适配器,向客户提供他所期望的接口,以满足客户。结构适配器模式的别名为包装器(Wrapper)模式,它分为对象适配器和类适配器。因为类适配器需要使用多继承,但Java不支持多继承,所以不再本文的讨论范围内。在适配器模式定义中所提及的接口是指广义的接口,它可以表示一个方法或...原创 2020-01-17 12:53:47 · 190 阅读 · 0 评论 -
Java 设计模式 6 —— 命令模式
命令模式定义将请求和请求的接收者封装在一个对象中,实现请求调用者和接收者之间的解耦。UML类图Command:定义命令的接口,声明执行的方法,用来封装请求和请求接收者。ConcreteCommand:命令接口实现对象,是“虚”的实现;通常会持有接收者,并调用接收者的功能来完成命令要执行的操作,具有执行和撤销两个动作。Receiver:接收者,真正执行命令的对象。任何类都可能成为一...原创 2020-01-17 12:52:15 · 87 阅读 · 0 评论 -
Java 设计模式 5 —— 单例模式
单例模式定义确保一个类只有一个实例,并提供一个全局访问点。通常要创建对象,基本上是离不开new的。在某些特定的场景下,整个应用的生命周期内只需要一个实例对象,那么new显然已经不适用了。在之前文章中介绍Hibernate时,就曾经使用过单例模式。在静态代码块中初始化了sessionFactory,显然全局的sessionFactory有且只有一个。public class Hiber...原创 2020-01-17 12:49:52 · 76 阅读 · 0 评论 -
Java 设计模式 4 —— 工厂模式
工厂模式定义将对象实例的创建过程整合到另一个工厂对象中,用工厂对象创建对象来代替new。工厂模式又可以分为:简单工厂、工厂方法模式、抽象工厂模式等。简单工厂简单工厂的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。严格意义上来说,简单工厂不在23种设计模式之中。抽象意义上的关系图:朱老板使用装饰者模式修改了自己的电脑店...原创 2020-01-17 12:48:37 · 260 阅读 · 0 评论 -
Java 设计模式 3 —— 装饰模式
装饰模式定义动态地将责任附加到对象上。若要扩展功能,装饰者模式提供了比继承更有弹性的替代方案。为了满足类设计的开闭原则,装饰模式应运而生。使用这个模式可以在扩展类功能和特性是最大限度的减少对类的修改。通过对类进行装饰来实现功能的扩展。UML类图 演示朱老板开了一家电脑配件店,专门给别人配电脑。他家的配件有电源,硬盘,CPU,显卡,风扇,内存条和主板。一开始朱老板简单的每个上门...原创 2020-01-17 12:44:41 · 63 阅读 · 0 评论 -
Java 设计模式 2 —— 观察者模式
观察者模式定义建立了对象之间一对多的依赖关系,这样一来,当一个对象的状态改变时,它的所有依赖者都会收到通知并自动更新。观察者模式中,被观察对象状态发生改变时,会通知所有的观察者。这里又有PUSH和PULL的两种模式。PUSH是被观察对象主动将内容更新到观察者之上,而PULL则是观察者主动向被观察对象获取更新内容。观察者模式经常出现在Java的GUI、Web和Spring等地方。UML...原创 2020-01-17 12:38:36 · 162 阅读 · 0 评论 -
Java 设计模式 1 —— 策略模式
策略模式定义策略者模式定义了一系列的算法,并将每一个算法封装起来,而且使他们可以相互替换,让算法独立于使用它的客户而独立变化。这个模式将类中可变的部分抽象出来封装成一类算法。应用场景之间的切换无需修改代码,只要加载不同的算法就能实现不同场景下的不同功能。策略者模式的出现是为了弥补继承过程中代码复用性的不足。它完美的体现除了“多用组合,少用继承”的设计原则。UML类图我们以大学生为例...原创 2020-01-17 12:34:32 · 159 阅读 · 0 评论