过年过节放鞭炮,烟花是中国的传统风俗。不仅可以烘托节日的气氛,而且还可以让我们看到美丽的烟火,相信大家不会忘记奥运会开闭幕上的精彩无比的烟火表演,让世界过目不忘,堪称锦上添花。
今晚坐在车上,望着车外美丽的烟火,突然将这绚丽多瑙的烟火和工作中的设计模式联系起来。下面简单的用设计模式“点燃”下烟火,仅供大家娱乐。
综观整个放烟火过程,主要参与者与角色有:放烟火者 烟火筒 烟火
Command 模式 -- 只管点燃
整个烟花提供给放烟火者的入口只有一条导火线,至于其中是放哪个烟花,烟花的燃 烧方式,烟花的形状,这些繁琐的事情,统统不用管~~,内部已经井然有序,整装待发,只要放烟火者轻轻的点燃,下面就尽情的享受吧!!
Chain of Responsibility(职责链) -- 一个接一个点燃
漂亮的烟花总是先后出现多种美丽的形状,让你眼花缭乱,其实有谁想过,为什么烟花的形状是一个接一个,而没有出现同时或者错位呢?里面肯定有一条无形的绳索,按先后顺序进行排列。
Composite(组合) -- 各种烟火的组装
这种模式多出现在比较大的烟火中,一组形状的烟花假如有A,B,C,D四种,其中D下面又有 D1,D2,D3三种形状, D1下面又有D11,D12……,这种情况下,设想下烟火怎么去决定燃放这些呢?是不是 烟火燃放A B C,到D时 由D再调用 D1,D2,D3, D1发现自己下面还有子烟火,再用D1的方式调用D11,D12。这就是典型的COMPOSITE 模式。
Bridge(桥梁) -- 组装
我们在把目光放在烟火的外观上,烟火由外面的烟火筒和一个炮组成,烟火筒有大有小,十个的、12个、8个装的,炮也有多种多样的,小型,中等、大型的。在安装的时候根据实际情况需要再决定从这两种类型中挑选,两个class搞定:)
Strategy(策略) -- 随机安装
我们又把目光再次放到了安装上,在现有的烟火筒上,随机的选择烟火的样式,烟火是固定的,变的只是它的类型(子类),这不就是我们说的策略吗?在固定的模式下,根据实际的需要选择具体的功能类载入,这就是策略。
Proxy(代理) -- 给用户提供
一筒几十个的烟火,如果堆在一起,然后由你决定是先点燃哪个,怎么放置这些比较安全,也不会影响到其他烟火?是间隔多久?放的期间火柴没有了怎么办? 晕啊,细想起来还很多,我的天,那样放太麻烦了。不用担心,聪明的商家,早就替你做好了这些,你不用关心那些繁琐的事情。那些事情统统交给外面的烟火筒吧,由她和烟火交互,我们只要去关心访问这个烟火筒代理(proxy),使用她提供我们的简单的接口(导火索),一切就是这么简单。
Facade(外观) -- 提供统一外观接口
呵呵,最后一个想到的有点牵强,烟火筒是不是又可以算是一个外观模式呢?它提供了简单而又单一的功能---点燃。太统一了:)
以上就是个人的一点想法,请大家随意拍砖啊~~~
分享到:
相关推荐
HTML5实现五彩烟花动画特效,canvas炫彩烟火,高质量js源代码! HTML5实现五彩烟花动画特效,canvas炫彩烟火,高质量js源代码! HTML5实现五彩烟花动画特效,canvas炫彩烟火,高质量js源代码! HTML5实现五彩烟花...
对于烟火识别,每张图片的XML注释将明确指出烟火的位置、形状和其他关键特征,使得模型能够理解烟火的视觉模式。 接下来,我们要关注的是“烟火识别”这个概念。烟火识别是计算机视觉的一个子领域,目的是让机器...
在Android平台上,开发一款带有Fireworks烟花效果的应用可以极大地提升用户体验,尤其是在节日或者庆祝场景中。这个名为"Fireworks烟花效果源码.zip"的压缩包文件包含了一个完整的Android项目,用于展示如何在...
烟火检测是计算机视觉领域中的一个重要任务,特别是在安全监控和火灾预警系统中有着广泛的应用。这个数据集名为"烟火检测数据集2+1000IMG+已标注.zip",包含了2000张烟火图像以及对应的标注信息,显然是为了训练或...
其次,"多种烟花类型"表明代码中实现了多种不同的烟花效果。例如,可能会有流星雨、花朵状、喷泉式等不同类型的烟花。每种烟花都有其独特的动画效果,通过编程语言中的循环、条件判断和图形库来模拟真实烟花的绽放...
烟火检测是计算机视觉领域中的一个重要应用,主要用于及时发现并预防火灾等安全隐患。在这个名为"烟火检测数据集1+1000IMG+已标注.zip"的压缩包中,包含了一个针对烟火检测训练和评估的数据集。这个数据集特别强调了...
烟花代码是一种视觉效果的模拟,通常用于网页、游戏或应用程序中,为用户提供节日或庆祝气氛。这个名为"fireworks-master"的压缩包文件包含了11种不同的烟花代码实现,每一种都可能使用了HTML、jQuery和CSS这三种...
2022新年烟花代码html(html制作新年烟花代码+带音效) 效果展示https://www.lmtaolu.cn/biaobai/xkyanhua/ 新年烟花代码(纯js和html)可以随时嵌入项目的新年烟花代码,复制即可运行。 2022新年烟花代码html(html...
Java编写的烟花程序是一个展示多线程应用的实例,它在Eclipse集成开发环境中运行,为用户呈现了一场视觉盛宴。这个程序的核心在于如何利用Java语言的特性,特别是多线程技术,来模拟烟花升空、绽放的效果。接下来,...
在前端开发中,创建绚丽的视觉效果是一种常见的需求,而“js烟花效果”就是其中之一。这一效果通过JavaScript编程实现,可以为网站增添节日氛围或提升用户体验。本文将深入探讨如何利用JavaScript来创建前端的烟花...
新年的烟花春节倒计时源码烟花礼炮html源码新年的烟花春节倒计时源码烟花礼炮html源码新年的烟花春节倒计时源码烟花礼炮html源码新年的烟花春节倒计时源码烟花礼炮html源码新年的烟花春节倒计时源码烟花礼炮html源码...
`city.png` 可能代表繁华的城市夜景,为烟花提供了一个现实的展示舞台,而 `moon.png` 可能是夜空中的一轮明月,增添了几分浪漫氛围。这些静态图片与动态的烟花相融合,共同创造出一个完整的视觉场景。 总的来说,...
爆炸过程中,根据预设的爆炸模式(如线性、指数等)生成新的烟花,这些新烟花可能是局部或全局的探索。 3. **变异**:为了增加算法的全局搜索能力,部分烟花会进行随机变异。这一步通常采用随机扰动的方式,以跳出...
在这个项目中,开发者通过JavaScript实现了一个模拟烟花绽放、星星闪烁的动态星空背景,为网页增添节日氛围。 1. JavaScript基础: JavaScript是一种广泛用于网页开发的脚本语言,它允许动态内容的创建,如动画、...
在VB(Visual Basic)编程环境中,我们可以利用其提供的图形用户界面(GUI)和基本的图形绘制功能来模拟“放烟花”的效果。VB虽然是一款相对简单的编程语言,但通过巧妙的编程技巧,可以实现许多有趣的效果,包括...
本资源提供的是一个“爱心代码”和“烟花代码”的压缩包,旨在让即使是编程新手也能在浏览器中轻松实现视觉效果。 爱心代码通常是指利用HTML和CSS来绘制形状,特别是心形图案。HTML可以用于结构化内容,而CSS则用于...
在这款"仿真烟花"特效中,每个粒子代表一个烟花或其碎片,它们根据预设的物理规则运动,如发射速度、轨迹、颜色变化和生命周期。 1. **粒子系统**:粒子是微小的几何对象,它们的集合可以构成更复杂的形状和动态...
在这个"opengl烟花程序源码"中,我们可以深入理解OpenGL的工作原理以及如何利用它来创建动态且引人入胜的视觉效果。 首先,OpenGL是跨平台的,支持多种操作系统,如Windows、Linux和macOS。它的核心在于其固定功能...
前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+jQuery+实现烟花特效前端+...
在这个"opengl 烟花 美丽 炫"的主题中,我们将深入探讨如何使用OpenGL库来创建炫丽多彩的烟花效果。 首先,OpenGL是跨语言、跨平台的应用程序编程接口(API),它允许程序员直接与图形处理器(GPU)交互,生成2D和...