什么是设计模式:【每天一个java设计模式(零)】 - 设计模式基本概念及七大设计原则创建型模式工厂模式:【每天一个java设计模式(一)】
产品,而抽象工厂模式可生产多个等级的产品。下面给出抽象工厂的实例:假设现在有一个工厂可以生产一些产品(手机、电脑、飞
单例模式是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,指一个类只有一个实例,且该类能自行创建这个实例的一种模式。单例模式有 3 个特点:单例类只有一个实例对象;该单例对象必须由单例类自行创建;单例类对外提供一个访问该单例的全局访问点。通常有两种方式用来实现单例模式:懒汉式、饿汉式懒汉式懒汉式不在类加载的时候生成实例,只有当第一次调用 getlnstance 方法时才去创建
原型模式是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式。它是用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,不需要知道对象创建的细节。Java中提供了对象的 clone() 方法,所以实现原型模式很简单。他主要就包括了深克隆和浅克隆两种方式。如果中java中的克隆不能
在软件开发过程中有时需要创建一个复杂的对象,这个复杂对象通常由多个子部件按一定的步骤组合而成。建造者模式使用多个简单的对象一步一步构建成一个复杂的对象。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。建造者模式的实现 假设我们要构造一台电脑,包括主机、显示器、键鼠套装三个部分。那么我们可以通过以下方式来实现建
由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。在代理模式中,一个类代表另一个类的功能,为其他对象提供一种代理以控制对这个对象的访问。这种类型的设计模式属于结构型模式。代理模式的实现1. 创建一个接口//接口public interface Product { void show();}2. 创
观察者模式的定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。观察者模式存在一个控制主体,和许多的观察者,当控制主体状态改变时,所有观察者也都会做出反应。观察者模式的实现;1. 创建观察者抽象类//抽象观察者public abstract class Observer
策略模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。下面我们通过加减乘的运算来实现策略模式。策略模式的实现;1. 创建一个策略接口public interface Strategy { public in
rivate Ha
命令模式是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。命令模式也就是一个用户发送请求,调用者接收命令,再将命令发送给接受者,最后接收者作出相应的过程命令模式的实现:1. 创建接受者public class Receiver { public void action()
解释器模式提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。解释器模式主要包括以下几个部分:抽象表达式角色:定义解释器的接口,约定解释器的解释操作,主要包含解释方法 interpret()。终结符表达式角色:是抽象表达式的子类,用来实现文法中与终结符相关的操作,文法中的每一个终结符都有一个具体终结表达式与之相对应。非终结符表达式角色:也
在模板模式中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。模板模式的实现:创建抽象模板类//模板类public abstract class TemplateClass { public void templateMethod(){ specificMethod();
在状态模式中,类的行为是基于它的状态改变的,允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。这种类型的设计模式属于行为型模式。在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。状态模式的实现:1. 创建状态的抽象类//抽象状态类public abstract class State { public abstract voi
备忘录模式保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模式。备忘录模式的实现:备忘录模式的主要角色如下:发起人(Originator)角色:记录当前时刻的内部状态信息,提供创建备忘录和恢复备忘录数据的功能,实现其他业务功能,它可以
这个学校中人员的层次结构。创建一个Person类//表示一个人public class Person
在现实生活中,某些类具有两个或多个维度的变化,如图形既可按形状分,又可按颜色分。桥接模式将抽象部分与它的实现部分分离开来,使他们都可以独立变化,它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。下面我们就通过桥接模式来创建不同颜色不同形状的图形。桥接模式的实现:1. 创建一个颜色接口//颜色接口public interface Color { //对传入的图形上色
装饰器模式允许向一个现有的对象添加新的功能,同时又不改变其结构。装饰器模式属于结构型模式,它是作为现有的类的一个包装。使用给手机添加不同的功能为例,来实现装饰器模式:装饰器模式的实现1. 创建一个产品接口//产品接口public interface Product { public void function(); //产品的功能}2. 创建一个手机类实现产品接口//手机实体publ
享元模式主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。在有大量对象时,有可能会造成内存溢出,我们把其中共同的部分抽象出来,如果有相同的业务请求,直接返回在内存中已有的对象,避免重新创建。享元模式的实现:1. 创建手机类//手机类publ
外观模式隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。外观模式的实现 假设我们解决一个问题需要经过设计、建模、运行三个阶段,我们使用外观模式来隐藏这三个阶段,只给用户提供一个解决问题的接口。1. 创建设计类//设计public class Design { public void design
当某种业务功能已经实现,但它们与当前系统的接口不兼容,如果重新开发成本又很高,这时用适配器模式能很好地解决这些问题。适配器模式是作为两个不兼容的接口之间的桥梁,属于结构型模式,它结合了两个独立接口的功能。将一个类的接口转换成需要的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式的实现:假设有两款不同年代的电脑,一台功率100W,另一台功率200W。但是现在只有一个1
设计模式概述设计模式是什么?它是软件开发人员在软件开发过程中经过相当长的一段时间的试验和错误总结出来的面临的一般问题的解决方案;它是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结;它是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。设计模式能干什么?实现代码的可重用性增加代码的可维护性减低代码的被理解难度保证代码的可靠性增加系统的健壮性易
工厂模式是 Java 中最常用的设计模式之一。它属于创建型模式,提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象,即定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。使用工厂模式,用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程;只需要知道产品
在访问者模式中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以
迭代器模式的定义:提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。迭代器模式是一
中介者模式定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。中介者模式又叫调停模式
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号