![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
grandir
一只有梦想的菜鸟
展开
-
用户信息操作撤销(备忘录模式实战)
某系统提供了用户信息操作模块,用户可以修改自己的各项信息。为了使操作过程更加人性化,现使用备忘录模式对系统进行改进,使得用户在进行了错误操作之后可以恢复到操作之前的状态。原创 2020-04-23 17:19:58 · 753 阅读 · 0 评论 -
虚拟聊天室(中介者模式实战)
某论坛系统欲增加一个虚拟聊天室,允许论坛会员通过该聊天室进行信息交流,普通会员(CommonMember)可以给其他会员发送文本信息,钻石会员(DiamondMember)既可以给其他会员发送文本信息,还可以发送图片信息。该聊天室可以对不雅字符进行过滤,如“日”等字符;还可以对发送的图片大小进行控制。用中介者模式设计该虚拟聊天室。原创 2020-04-23 17:05:29 · 2307 阅读 · 4 评论 -
拦截器(SpringMVC)
拦截器定义:Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理。例如通过拦截器可以进行权限验证、记录请求信息的日志、判断用户是否登录等。要使用Spring MVC中的拦截器,就需要对拦截器类进行定义和配置。通常拦截器类可以通过两种方式来定义。1.通过实现HandlerInterceptor接口,或继承...原创 2020-04-15 20:04:52 · 197 阅读 · 0 评论 -
功能键设置(命令模式实战)
为了用户使用方便,某系统提供了一系列功能键,用户可以自定义功能键的功能,如功能键FunctionButton可以用于退出系统(SystemExitClass),也可以用于打开帮助界面(DisplayHelpClass)。用户可以通过修改配置文件来改变功能键的用途,现使用命令模式来设计该系统,使得功能键类与功能类之间解耦,相同的功能键可以对应不同的功能。类图:代码:抽象命令类:public...原创 2020-04-08 21:19:38 · 6290 阅读 · 1 评论 -
行为型模式——命令模式
模式定义命令模式(Command Pattern):将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。命令模式是一种对象行为型模式,其别名为动作(Action)模式或事务(Transaction)模式。模式结构命令模式包含如下角色:Command: 抽象命令类ConcreteCommand: 具体命令类Invoke...原创 2020-04-08 20:51:15 · 224 阅读 · 1 评论 -
审批假条(职责链模式实战)
某OA系统需要提供一个假条审批的模块,如果员工请假天数小于3天,主任可以审批该假条;如果员工请假天数大于等于3天,小于10天,经理可以审批;如果员工请假天数大于等于10天,小于30天,总经理可以审批;如果超过30天,总经理也不能审批,提示相应的拒绝信息。类图:代码:抽象处理者Leader类:public abstract class Leader{ protected Stri...原创 2020-04-08 20:28:45 · 1795 阅读 · 1 评论 -
行为型模式——职责链模式
行为型模式概述行为型模式(Behavioral Pattern)是对在不同的对象之间划分责任和算法的抽象化。行为型模式不仅仅关注类和对象的结构,而且重点关注它们之间的相互作用。通过行为型模式,可以更加清晰地划分类与对象的职责,并研究系统在运行时实例对象之间的交互。在系统运行时,对象并不是孤立的,它们可以通过相互通信与协作完成某些复杂功能,一个对象在运行时也将影响到其他对象的运行。行为型...原创 2020-04-08 20:02:26 · 247 阅读 · 0 评论 -
创建型模式——原型模式
模式动机在面向对象系统中,使用原型模式来复制一个对象自身,从而克隆出多个与原型对象一模一样的对象。在软件系统中,有些对象的创建过程较为复杂,而且有时候需要频繁创建,原型模式通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象,这就是原型模式的意图所在。模式定义原型模式是一种对象创建型模式,用原型实例指定创建对象的种类,并且通过复制这些原型...原创 2020-04-03 17:28:07 · 147 阅读 · 0 评论 -
创建型模式——建造者模式
模式定义建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式属于对象创建型模式。根据中文翻译的不同,建造者模式又可以称为生成器模式。模式结构建造者模式包含如下角色:Builder...原创 2020-04-03 16:59:20 · 123 阅读 · 0 评论 -
权限管理(工厂模式)
在某OA系统中,系统根据对比用户在登录时输入的账号和密码以及在数据库中存储的账号和密码是否一致来进行身份验证,如果验证通过,则取出存储在数据库中的用户权限等级(以整数形式存储),根据不同的权限等级创建不同等级的用户对象,不同等级的用户对象拥有不同的操作权限。类图:...原创 2020-04-03 11:08:41 · 1487 阅读 · 2 评论 -
结构型模式——享元模式(学习笔记)
模式动机面向对象技术可以很好地解决一些灵活性或可扩展性问题,但在很多情况下需要在系统中增加类和对象的个数。当对象数量太多时,将导致运行代价过高,带来性能下降等问题。享元模式正是为解决这一类问题而诞生的。享元模式通过共享技术实现相同或相似对象的重用。在享元模式中可以共享的相同内容称为内部状态(Intrinsic State),而那些需要外部环境来设置的不能共享的内容称为外部状态(Extri...原创 2020-03-31 18:15:25 · 134 阅读 · 0 评论 -
电视机工厂+电器工厂(工厂模式实战)
简单工厂模式实战简单电视机工厂某电视机厂专为各知名电视机品牌代工生产各类电视机,当需要海尔牌电视机时只需要在调用该工厂的工厂方法时传入参数“Haier”,需要海信电视机时只需要传入参数“Hisense”,工厂可以根据传入的不同参数返回不同品牌的电视机。现使用简单工厂模式来模拟该电视机工厂的生产过程。类图:代码:TV接口:public interface TV{ public vo...原创 2020-03-29 09:51:19 · 3911 阅读 · 3 评论 -
创建型模式——抽象工厂模式(学习笔记)
回顾工厂方法模式在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法也具有唯一性,一般情况下,一个具体工厂中只有一个工厂方法或者一组重载的工厂方法。但是有时候我们需要一个工厂可以提供多个产品对象,而不是单一的产品对象。抽象工厂模式抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类...原创 2020-03-27 10:51:53 · 97 阅读 · 0 评论 -
创建型模式——工厂方法模式(学习笔记)
回顾简单工厂的不足:在简单工厂模式中,只提供了一个工厂类,该工厂类处于对产品类进行实例化的中心位置,它知道每一个产品对象的创建细节,并决定何时实例化哪一个产品类。简单工厂模式最大的缺点是当有新产品要加入到系统中时,必须修改工厂类,加入必要的处理逻辑,这违背了“开闭原则”。在简单工厂模式中,所有的产品都是由同一个工厂创建,工厂类职责较重,业务逻辑较为复杂,具体产品与工厂类之间的耦合度高,严重影响...原创 2020-03-27 10:13:36 · 104 阅读 · 0 评论