#深入浅出设计模式

Java设计模式5:原型模式

原型模式原型模式属于对象的创建模式,通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象,这就是原型模式的用意。 原型模式结构原型模式要求对象实现一个可以克隆机身的接口(关于克隆,请参考Cloneable接口和Object的clone()方法),这样就可以通过复制...

Java设计模式4:单例模式

前言非常重要,单例模式是各个Java项目中必不可少的一种设计模式。本文的关注点将重点放在单例模式的写法以及每种写法的线程安全性上。所谓"线程安全性"的意思就是保证在创建单例对象的时候不存在竞争,只会创建出一个单例对象。 单例模式作为对象的创建模式,单例模式确保其某一个类只有一个实例,而且自行实例化并向整个系统...

Java设计模式3:工厂方法模式

工厂方法模式工厂方法模式是类的创建模式。工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工厂推迟到子类中。 工厂方法模式工厂方法模式是对简单工厂模式进一步抽象的结果。假如是不使用反射的工厂方法模式,那么所有的if...elseif...else都放在工厂类中,势必造成工厂类的无限臃肿这时候就需要...

Java设计模式2:简单工厂模式

简单工厂模式简单工厂模式是类的创建模式,又叫做静态工厂方法模式。简单工厂模式由一个工厂对象决定生产出哪一种产品类的实例。 为什么要使用简单工厂模式原因很简单:解耦。A对象如果要调用B对象,最简单的做法就是直接new一个B出来。这么做有一个问题,假如C类和B类实现了同一个接口/继承自同一个类,系统需要把B类修改...

Java设计模式1:设计模式概论

设计模式是什么设计模式(Designpattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易地被他人理解、保证代码可靠性。毫无疑问,设计模式于己于人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石脉络,如同大厦的结构一样。总体...
代码星球 代码星球·2020-07-29

《设计模式之禅》之门面模式

门面模式也叫外观模式,是一种比较常用的封装模式,其定义如下:要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。1.Facade门面角色客户端可以调用这个角色的方法。此角色知晓子系统的所有功能和责任。一般情况下,本角色会将所有从客户端发来的请求委派到相应的子...

《设计模式之禅》之观察者模式

观察者模式也叫做发布订阅模式,它是一个在项目中经常使用的模式,其定义如下:定义对象间一种一对多的依赖关系,使得没当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。观察者模式的几种角色名称:(1)Subject被观察者定义被观察者必须实现的职责,它必须能够动态地增加、取消观察者。它一般是抽象类或者实现类,...

《设计模式之禅》之组合模式

组合模式也叫合成模式,有时又叫做部分-整体模式,主要用来描述部分与整体的关系,其定义如下:将对象组合成的树形结构以表示”部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。组合模式的几个角色:(1)Component抽象构件角色定义参加组合对象的共有方法和属性,可以定义一些默认...

《设计模式之禅》之迭代器模式

它提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。迭代器是为容器服务的,那什么是容器?能容纳对象的所有类型都可以称之为容器,例如Collection集合类型、Set类型等,迭代器就是为解决遍历这些容器中的元素而诞生的。Iterator抽象迭代器抽象迭代器负责定义访问和遍历元素的接口,而且基本上是有...

《设计模式之禅》之适配器模式

将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式的三个角色:1.Target目标角色该角色定义把其他类转换为何种接口,也就是我们的期望接口。2.Adapter源角色你想把谁转换成目标角色,这个”谁”就是源角色,它是已经存在的、...

《设计模式之禅》之策略模式

策略模式是一种比较简单的模式,也叫做政策模式,其定义如下:定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。策略模式使用的是面向对象的继承和多态机制,我们看看策略模式的三个角色:1.Context封装角色它也叫上下文角色,起承上启下封装作用,屏蔽高层模块对策略、算法的直接访问,封装可能存在的变化。2.Stra...

《设计模式之禅》之装饰模式

装饰模式是一种笔记常见的模式,其定义如下:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。装饰模式通用类说明Component抽象构件Component是一个接口或者是抽象类,就是定义我们最核心的对象。也就是最原始的对象。注意:在装饰模式中,必然有一个最基本、最核心、最原始的接口或抽象...

《设计模式之禅》之责任链模式

使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。责任链模式的重点是在”链”上,由一条链去处理相似的请求在链中决定谁来处理这个请求。1.责任链模式的优点责任链模式非常显著的优点是将请求和处理分开。请求者可...

《设计模式之禅》之命令模式

将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或记录请求日志,可以提供命令的撤销和恢复功能。命令模式的通用类图(这里我抽象为如下):1.Receive接收者角色该角色就是干活的角色,命令传递到这里是应该被执行的。2.Command命令角色需要执行的所有命令都在这里声明。3.Invoker调用...

《设计模式之禅》之中介者模式

用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者模式主要由以下几个部分组成:1.Mediator抽象中介者角色抽象中介者角色定义统一的接口,用于各同事角色之间的通信.2.ConcreateMediator具体中介者角色具体中介者角色通过协...
首页上一页...2324252627...下一页尾页