微波炉功能简单,可以按食品分裂加热,可以手动控温,将来也有可能在外面添加触摸屏(如现在的洗衣机一样)。外设功能逐渐比较多,我们需要把这些杂七杂八的东西统一在一起,这样facade模式就派上用场了。
其实对于一些外设功能,我们是不是可以封装一下,这样用户说要加热,我们就do一下加热,对于要停止加热,我们也do一下stop。看到这里命令模式又派上用场了。反正的是do,对于怎样do让居然的功能去做吧。
将来用户执行一个功能,如果能告知执行的结果那就好了。比如加热鸡,如果加热好了,可以提示一下来个语音。如果是高级的微波炉能发个短信提醒一下也是超好呀!这样MVC就派上用场了。
我们刚说的高级功能的微波炉,想想她有哪些功能,她有显示屏,有语音提示,可以发短信等待。如果鸡加热好了,一方面要语音提示“呀呀!鸡好了,快来吃!”,一方面显示屏上,蹦出一只熟鸡跳呀跳,还有文字,“我是一只,熟了的鸡,呀呀,什么时候赶紧来吃!”,一方面发短信给老婆叫她回来调味(主要是我不会调味,呵呵)。一个对象发生变化,需要将这些变化通知给多个对象,那不简直就是观察着模式吗?
对于加热这一功能是有一定步骤的。比如可以简单分为加热前,加热中,加热后等若干步骤的。需要加热的东西如粥,米饭,鸡等都要遵循这个步骤的。对于一个操作,俺某些固定的步骤去执行,这不是模板模式的体现吗!
唉,刚说的对于需要加热的东西如粥,米饭,鸡等都要遵循相同的步骤,在每一步骤中有一些相同的,比如加热前开火,加热后关火等,但是还有些不同,比如煮粥的时候,火候要控制好平稳,对于加热鱼温度要小一点,而热猪手温度要适当大一点否则不好吃。我们在不改变操作的前提下,又能执行一些新的功能,这不是Visitor模式的具体体现吗!
其实对于食物加热的是个技术难题,怎样在最短的时间内加热让其内部营养元素损失最少,又要保证其口感好,当然还要环保省电。我认为这里会对不同类型的食物需要一个复杂的算法进行控制。那就用策略模式吧!
前面说了一些功能需要封装成一个对象,那怎样兴建这些对象呀,这些对象是不是可以单粒呀,如果不是单粒的,是不是有些可以利用原形进行clone来呀!这样工厂模式,单粒模式,原形模式是不是也是需要的呀!
说实话,这几年广东这么微波炉市场发展的太快了!一方面要生产面向农村的低端微波炉,一方面还要生产面向大中城市的中高端微波炉,另外对于国外欧美非常高端的市场俺们也不能放过呀!老板说三大通吃,一个都不能少,都要强,都要狠才行!面对这么多套家伙,很多抽象的功能接口都是一样的,只是有些具体的实现不一样。比如加热开火,如果低端的就开个火就行了。而高端的或许需要检测一下外围情况,如果不能开火,还要来个报警。想想国外一个老太太喝汤被汤烫伤了还赔n多钱。俺们的微波炉要是有问题了不是要给赔光了不成。不扯了。反正是一套接口,多种实现了。咣当,赶紧查了一下设计模式圣经。圣经明确写着此类情况非桥(bridge)模式不可。
好了,现在总结一下,看看设计一个破微波炉要用到那些模式:
Facade,Command,MVC,Observer,Template,Visitor,Strategy,Factory,Singleton,Prototype,Bridge
其实对一些问题如果真正理解的其内含,联系起来,还是蛮方便的!如果答不上来,有时候也需要反思一下自己,是思维上,知识上,反应上等哪些地方出问题了。最近面试,偶被多线程的问题问倒,现在想想这一块的确是我自己的软肋,项目中用多线程太少了,一些东西知道,时间长了只是有个大概印象,细节的东西忘记了!呵呵!
这种情况的面试,如果回答的好,非常能活跃气氛,拉拢面试官与应聘者的距离。其实这比群呕,做游戏的要好多了。对于这两种,我一般必死无疑,因为我根本摸不透其中的规律呀!呵呵!
这个得看项目经验了,以前跟一些老鸟在一起工作得时候深有体会,他们因为多个项目得磨练,对于系统框架得可能变化点熟得很,比如分页框架,他们一般就是用适配器模式,以利于未来引入新得分页开源框架,还有就是对xml文件得处理,对于像我这样得新手来说,看到得是接口,具体内部用得是哪个开源框架,他们也做了封装。还有就是数据源和dao,一般都是用工厂模式,以方便在各个数据库间得切换。
另外就是,项目分不同区域得版本,主要框架是一致,但是在具体业务上却大有不同,具有地方特色,那么就需要对业务层进行高度抽象,灵活使用工厂模式,门面模式,策略模式等等,这样才好方便地方实施程序员进行扩展以及代码重用。
分享到:
相关推荐
总的来说,微波炉模拟小程序是一个结合了JAVA基础知识、面向对象编程、时间处理和用户交互的综合性项目。通过这个项目,开发者不仅可以巩固JAVA编程技能,还能提高软件设计和问题解决的能力。而压缩包中的`...
这个项目不仅锻炼了我们的编程技巧,也让我们深入理解了软件工程中面向对象设计的思想。 首先,我们需要了解微波炉的基本工作流程。微波炉主要通过发射微波来加热食物,这些微波能够被食物中的水分子吸收,进而转化...
Verilog 微波炉定时器设计是一种基于 Verilog hardware description language (HDL) 的微波炉定时器设计。该设计使用 Verilog 语言描述了微波炉定时器的数字电路,包括控制模块、数据装入模块和计时器模块。该设计的...
这个小程序可能是为了教学目的或者初级编程练习而设计的,旨在帮助学习者理解面向对象编程、事件处理以及图形用户界面(GUI)的设计原则。 在Java中,构建这样的程序通常会使用Swing或JavaFX库来创建GUI组件。Swing...
同时,这样的项目也提供了很好的实践平台,帮助开发者熟悉和掌握面向对象设计的原则和设计模式的应用。在这个公开的代码库中,你可以看到如何将这些理论概念转化为实际的代码实现,从而提升你的编程技能。
微波炉用变压器是一个升压变压器(见附图)。和我们常见的变压器相比没有很多特别之处。也是由初级绕组,次级绕组组成。初级绕组有且只有一组电压接220V交流市电。次级有两个绕组两组电压:一组电压是:4V左右的灯丝...
从给定的文件信息来看,我们正在探讨的是海尔变频微波炉中变频板的电路设计。变频板是微波炉中的关键组件之一,它负责将输入的交流电转换为高频脉冲,用于驱动磁控管,从而产生微波加热食物。下面我们将深入分析该...
这样不仅方便测试,也能更好地遵循面向对象的设计原则。 在实际编程中,我们还需要考虑异常处理,例如输入非法或时间超出范围的情况。为了使模拟更为真实,还可以加入一些附加功能,比如预设的烹饪模式、声音提示等...
《基于FPGA的微波炉控制器设计》 在当今科技高速发展的时代,FPGA(Field-Programmable Gate Array,现场可编程门阵列)在嵌入式系统设计中的应用越来越广泛,尤其在微波炉控制器这样的家用电器领域,其灵活、高效...
微波炉程序是一种嵌入式系统应用,主要运行在单片机上,...以上就是微波炉程序相关的技术要点,从硬件控制到软件设计,每个环节都需要细致入微的考虑和精心的编程,以实现一个安全、智能且用户体验良好的微波炉产品。
Quartus是Altera公司(现Intel FPGA)的开发工具,提供了从设计输入、综合、布局布线到编程的全套流程。 2. **数电设计**:数字电子设计是用二进制逻辑来表示和处理信息的学科,包括逻辑门、触发器、计数器、移位...
1. **C#编程基础**:C#是一种面向对象的编程语言,由微软公司开发,广泛应用于Windows桌面应用、游戏开发、移动应用以及服务器端编程。在这个项目中,你会学习到C#的基本语法,如变量声明、条件语句、循环、类与对象...
手册涵盖了从初次使用前的准备工作到日常操作、维护保养的方方面面,旨在帮助用户充分发挥该微波炉的功能。 在安全信息部分,手册强调了微波炉使用的若干重要事项。首先,用户应妥善保管说明书,以便随时查阅。其次...
在微波炉控制器项目中,VHDL被用来定义和实现微波炉的各种功能模块,如定时器、功率调节、启动/停止控制等。 微波炉控制器的核心功能包括: 1. **定时器**:微波炉通常有一个定时器,用户可以设定烹饪时间。这个...
微波炉作为日常生活中常用的电器,其电磁兼容性(Electromagnetic Compatibility, EMC)是确保设备正常工作且不干扰其他电子设备的关键因素。在设计和研发过程中,通过电磁兼容仿真可以预测并解决潜在的电磁干扰问题...
【标题】"vhdl 微波炉 源文件及报告"揭示了这是一个与电子工程相关的项目,特别是涉及数字电子技术(数电)的实验。在这个实验中,使用了VHDL(Very High-Speed Integrated Circuit Hardware Description Language)...
1. 变压器、二极管和电容器将民用电从220V提升到3000V以上,通过导线将高压电送往磁控管。 2. 磁控管产生微波,微波由天线送出,经由波导管(waveguide)进入炉腔,炉腔的金属腔壁不断反射微波。 3. 旋转的玻璃托盘...
单片机仿真微波炉是一项基于微控制器技术的实践项目,通常用于教学或个人技能提升。在这个项目中,我们利用专业软件Proteus和Keil进行微波炉系统的虚拟实现,以便于理解和学习微波炉的工作原理以及单片机控制系统的...
根据提供的文件内容,我们可以从标题《基于FPGA微波炉控制器设计》和描述中提取出以下知识点: 1. FPGA(现场可编程门阵列)技术: FPGA是一种可以通过编程来配置的集成电路芯片,它允许设计者在硬件层面上自定义...