设计模式
文章平均质量分 57
油彩微笑
这个作者很懒,什么都没留下…
展开
-
状态模式---实例分析
状态模式的定义与特点状态(State)模式的定义:对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。状态模式是一种对象行为型模式,其主要优点如下:结构清晰,状态模式将与特定状态相关的行为局部化到一个状态中,并且将不同状态的行为分割开来,满足“单一职责原则”。将状态转换显示化,减少对象间的相互依赖。将不同的状态引入独立的对象中会使得状态转换变得更加明确,且减少对象间的相互依赖。状态类职责明确,有利于程序的扩展。通过定义新的子类很容易地增加新的原创 2021-12-20 19:27:13 · 1672 阅读 · 0 评论 -
中介者模式--实例分析
模式的定义与特点中介者(Mediator)模式的定义:定义一个中介对象来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。中介者模式又叫调停模式,它是迪米特法则的典型应用。中介者模式是一种对象行为型模式,其主要优点如下:类之间各司其职,符合迪米特法则。降低了对象之间的耦合性,使得对象易于独立地被复用。将对象间的一对多关联转变为一对一的关联,提高系统的灵活性,使得系统易于维护和扩展。其主要缺点是:中介者模式将原本多个对象直接的相互依赖变成了中介者和多个同事原创 2021-12-17 13:42:07 · 2129 阅读 · 5 评论 -
观察者模式---实例分析
模式的定义与特点观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。观察者模式是一种对象行为型模式,其主要优点如下:降低了目标与观察者之间的耦合关系,两者之间是抽象耦合关系。符合依赖倒置原则。目标与观察者之间建立了一套触发机制。它的主要缺点如下:目标与观察者之间的依赖关系并没有完全解除,而且有可能出现循环引用。当观察者对象很多时,原创 2021-12-17 13:32:27 · 2285 阅读 · 2 评论 -
组合-命令模式----实例分析
应用场景使用组合命令模式实现多功能开关,让用户进行设置,要么控制教室的所有灯的开和关,要么控制教室所有风扇的开和关,要么控制教室所有空调的开和关,要么控制教室里教学多媒体设备的开和关。模式结构视图代码设计控制器类public class Oyy22Controller { private Oyy22Command lightsOpenCommand, lightsCloseCommand, blowerOpenCommand, blowerCloseCommand, airOpenCom原创 2021-12-16 21:24:41 · 1369 阅读 · 0 评论 -
享元模式--实例分析
应用场景在天猫商城里存在着成天上万的网店,但是天猫所提供的网站模板是一样的,存在许多天猫网店使用同一个网店模板的情况,如果每一个网店都用一个网店对象来表示,因为网店数量巨大,我们需求很多的网店对象来表示,但是,采用同一套网店模板的网店除了里面所展示的内容不一样以外,网店的风格样式几乎一致,除了一些定制化的功能,比如logo等,请使用享元模式来模拟此问题,绘制享元模式类图,并绘制该实例的类图,并编写代码演示结果。享元模式结构类图根据类图设计代码WebShop(抽象享元类)public abstra原创 2021-12-10 12:53:05 · 826 阅读 · 0 评论 -
组合模式--实例分析
应用场景假如王同学到万达生活用品店购物。用 1 个红色小袋子装了 2 包衡阳特产(单价 25 元)、1 张衡阳地图(单价5.8元);用 1 个白色小袋子装了 2 包祁东黄花菜(单价 48 元)和 2 瓶常宁山茶油(单价 180 元);用 1 个中袋子装了前面的红色小袋子和 1副羽毛球拍(单价 380 元);用 1 个大袋子装了前面的中袋子、白色小袋子和 1 双鸿星尔克运动鞋(单价 198 元)。现在要求编程显示王同学放在大袋子中的所有商品信息并计算要支付的总价。组合模式结构类图根据该类图设计代码A原创 2021-12-10 11:09:31 · 660 阅读 · 0 评论 -
装饰者模式--实例分析
应用场景这是一个关于相亲的故事。某家有女初长成,七大姑八大姨欲帮忙寻得佳婿,后在各种群、圈、网站,收集了各种男人的资料。这里需要一个应用程序生成收集过来的男人的描述,如:是否有车、是否有房、是否有存款、是否有好品质。然后这个应用了装饰者模式的应用诞生了,动态添加男人的描述,最后得到男人的综述。装饰者结构类图代码实现Man(抽象构件)public interface Oyy22Man { public void getManDesc();}NormalMan(具体构件)publi原创 2021-12-09 21:25:27 · 649 阅读 · 0 评论 -
桥接模式--实例分析
应用场景电子商务网站常有这样的功能:发送消息通知,比如订货发货通知等,从业务上看,消息分为普通消息、加急消息和特急消息多种不同的消息类型,其业务处理是不一样的,比如加急消息是在消息上添加加急标记,而特急消息是添加了加急标记外,还会做一条催促的记录,多久不完成会继续催促。从发送消息的手段上看,又有系统内消息、手机短信消息、邮件等。代码设计结构类图发送消息的统一接口:public interface Oyy22MessageImplementor { public void send(Str原创 2021-12-08 13:50:49 · 412 阅读 · 0 评论 -
单例模式--实例分析
网站计算器是web应用程序的一项基本功能,用于统计使用网站的人数,可反应出网站的受欢迎程序,请设计一个简单的web页面,并为该页面设计一个计算器,用来统计当前访问网址的用户数。类图Singletonpublic class Oyy22Singleton { private static Oyy22Singleton instance=null; private int count; private Oyy22Singleton(){ } public stat原创 2021-12-07 23:32:19 · 316 阅读 · 1 评论 -
抽象工厂模式--实例分析
应用场景某手机操作系统可以根据用户不同的喜好在多种主题之间进行切换,随着主题的变化,系统中的字体、app图标、壁纸、锁屏壁纸等元素会随之发生变化。使用抽象工厂模式设计手机主题库创建元素接口//图标public interface Oyy22Icon { public void changeIcon();}//字体public interface Oyy22Typeface { public void changeTypeface();}//壁纸public interf原创 2021-12-07 13:34:16 · 1495 阅读 · 0 评论 -
设计模式--建造者模式
应用场景假设生产计算机只需要CPU、内存、显卡、显示器和光驱,现在要生产3个不同型号的计算机,其中CPU、内存、显卡、显示器是必须的,而光驱在某些计算机型号中可能不需要,请使用建造者模式模拟计算机的生产过程,并生产出三种不同型号的计算机,其中一种型号的计算机没有光驱。画建造者模式类图代码设计Computer类public class Oyy22Computer { private String CPU; private String Memory; private Str原创 2021-12-06 18:16:29 · 624 阅读 · 0 评论 -
使用简单工厂模式构造四则计算器
前言工厂模式就是专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式。它定义一个用于创建对象的接口,由子类决定实例化哪一个类。这篇文章还在四则计算器的基础上添加了指数对数的运算。(类名是因为实验报告的要求,如影响观感还请见谅)设计计算器两个数的加减乘除、指数和对数的运算方法//加法public class Oyy22AddCalculator implements Oyy22Calculator{ @Override public double get原创 2021-12-06 12:44:28 · 384 阅读 · 0 评论