- 浏览: 679294 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
sztime:
可以在文本框上绑定事件来禁用回车键, 我就是这样做的.在IE中 ...
form 回车自动提交问题 -
damoqiongqiu:
非常好的文章,很透彻不过有一句话小僧腆着脸补充一下:“1111 ...
为什么要用补码来做存储 -
wuyizhong:
原来如此啊。
form 回车自动提交问题 -
luliangy:
谢楼主~!
用C语言扩展Python的功能 -
kwong:
很有用,谢谢
火狐和IE 对css 样式解释的差异
When we build some flash applications, we spend most of the time on two things. One is image, the other is text. Eh, I don’t want to talk about the image. Because in most cases, I don’t need to deal with it, it belongs to others. So, I want to talk something about the text.
Sometimes, we want to capitalize all the text, while sometimes we want all of them be lowercased. Sometimes, we want the text color is red, while sometimes is blue. We need to care the case, the color, and more over, the font, or something else.
I’m tried of this thing. I don’t know whether you guys have any idea to solve this trouble. If you have any, please tell to me via the email.
Now, I’ll introduce my solution. Firstly, we need a basic class to implement the basic function.
The basic class’s code is as follows.
- class OutputText {
- public function write ( s : String ) : void {
- trace ( s ) ;
- }
- }
After we finish the basic class, let’s consider the other classes. We need to deal with the format in the other classes. So, we can write some classes to wrapper the basic operation. The concrete format class will inherited from the basic class, and override the basic operation. The override function will do some other thing to format the text.
Here is a concrete format class code.
- class OutputAppendText extends OutputText {
- private var output : OutputText ;
- public function OutputAppendText ( output : OutputText ){
- this . output = output ;
- }
- public override function write ( s : String ) : void {
- s += " {APPEND TEXT} " ;
- output . write ( s ) ;
- }
- }
Here is another concrete format class code.
- class OutputLowercaseText extends OutputText {
- private var output : OutputText ;
- public function OutputLowercaseText ( output : OutputText ){
- this . output = output ;
- }
- public override function write ( s : String ) : void {
- output . write ( s . toLowerCase ()) ;
- }
- }
As you see, two concrete classes both inherited from the basic class. So, you can use one concrete class to wrap another concrete class without considering the sequence.
Here is the test code.
- var output : OutputAppendText = new OutputAppendText (
- new OutputLowercaseText (
- new OutputText ())) ;
- output . write ( " skfjaslf " ) ;
If you want to add some other format, you just need to write some other class just like the classes mentioned.
And the UML diagram is as follows.
In this class hierarchy, there is only one basic class, which defines the basic operations. All the other classes will be inherited from the basic class, and override the basic operations. Every sub class will do something in the override function to implement the concrete operation.
This pattern is called decorator. The GoF’s definition is as follows.
Attach additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality.
–By GOF BOOK
This pattern is very useful when you deal with the input/output or formatting the text. The java I/O system is a famous example of this pattern.
Enjoy!
发表评论
-
设计模式 图析
2011-09-24 14:27 776【observer】 【adapter】 【comm ... -
一个设计模式的图片
2009-05-03 02:14 572... -
Design Patterns in ActionScript–Factory Method
2009-02-24 13:37 785In our last topic, we talk abou ... -
Design Patterns in ActionScript-Strategy
2009-02-24 13:34 591Today, we’re going to talk abou ... -
Design Patterns in ActionScript-Mediator
2009-02-24 13:29 521Ok, the last pattern now. Let’s ... -
Design Patterns in ActionScript-Command
2009-02-24 13:21 640A few months ago, I was an inte ... -
Design Patterns in ActionScript-Chain of Responsib
2009-02-24 13:12 623When you need some help in a ho ... -
Design Patterns in ActionScript-Flyweight
2009-02-24 13:07 667In Action Script 3.0 we have th ... -
Design Patterns in ActionScript-Visitor
2009-02-24 11:26 531It’s our winter holiday now, an ... -
Design Patterns in ActionScript-Memento
2009-02-23 23:38 538Now, I’m using Microsoft word t ... -
Design Patterns in Action Script-Composite
2009-02-23 14:29 545Still remember the Interpreter ... -
Design Patterns in ActionScript-Interpreter
2009-02-23 14:26 689In web programming, we often us ... -
Design Patterns in ActionScript-Proxy
2009-02-23 14:19 657Have you ever use HTTP-proxy or ... -
Design Patterns in Action Script-State
2009-02-23 14:17 980Yesterday, when I was on my way ... -
Design Patterns in ActionScript-Builder
2009-02-23 14:16 539Have you ever buy a computer on ... -
Design Patterns in ActionScript-Prototype
2009-02-23 14:12 686When I want to write the Protot ... -
Design Patterns in ActionScript-Iterator
2009-02-23 14:07 597There is a famous saying in com ... -
Design Patterns in Action Script-Template Method
2009-02-23 14:04 515Do you like playing cards? If y ... -
Design Patterns in ActionScript-Observer
2009-02-23 14:00 604In GUI programming, event-drive ... -
Design Patterns in ActionScript-Singleton
2009-02-23 13:55 544In our real world, many things ...
相关推荐
- **(FLEX)Advanced ActionScript 3 with Design Patterns - 2006 (Adobe)** 本书标题明确了其主要内容:针对Flex平台的高级ActionScript 3编程,并结合了设计模式的应用。出版年份(2006)表明了此书首次面世的...
这些模式通常分为三类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)和行为型模式(Behavioral Patterns)。 1. 创建型模式:如单例模式(Singleton)、工厂模式(Factory)和建造者模式...
在提供的"AS3DesignPatterns.pdf"文件中,很可能详细介绍了这些模式在AS3中的应用实例和最佳实践,帮助开发者理解如何在实际项目中实施这些模式。同时,"webgamei说明文档.txt"可能包含了关于在Web游戏中如何利用...
内容概要:本文探讨了高比例可再生能源接入对电力系统调峰能力的影响,提出了一种基于净负荷波动的调峰成本量化与分摊模型。首先,通过将负荷和可再生能源出力曲线转换为无波动的均值线,构建了无调峰需求的替代场景。接着,建立了含深度调峰和抽水蓄能的调度优化模型,用于计算不同场景下的调峰成本。通过比较有无调峰需求两种场景下的系统调峰成本,确定了单一主体导致的边际调峰成本,并采用Shapley值方法合理分摊调峰成本。研究表明,该模型可以有效反映各主体的调峰成本或贡献,有助于促进可再生能源的消纳和电力系统的稳定运行。 适合人群:从事电力系统规划、运营管理和可再生能源研究的专业人士,以及关注能源政策和技术发展的研究人员。 使用场景及目标:适用于评估和优化高比例可再生能源接入条件下的电力系统调峰成本,旨在提高电力系统的灵活性和经济性,同时促进可再生能源的有效利用。 其他说明:该模型需要根据实际情况进行调整和优化,以适应不同地区的电力市场特点和技术水平。
内容概要:本文详细介绍了如何使用博图V16进行ABB机器人的外部启动及其与西门子设备的Profinet通讯配置。首先概述了ABB机器人和博图V16的基本概念,接着深入讲解了外部启动的重要性和实现方式,重点介绍了FB功能块的应用,以及Profinet通讯的具体配置步骤。文中还强调了GSD文件的作用,用于描述机器人的属性和行为,最后讨论了硬件配置的要求和注意事项,特别是对dsqc1030或dsqc652板卡的支持和888-2或888-3选项的需求。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是那些负责机器人集成和编程的专业人士。 使用场景及目标:适用于需要将ABB机器人与西门子设备通过Profinet网络进行通讯并实现外部启动的项目。目标是提高自动化生产线的灵活性和效率,确保机器人和PLC之间的无缝协作。 其他说明:本文不仅提供了理论指导,还包含了实际操作中的关键细节,有助于读者快速掌握相关技能并在实践中应用。
scratch少儿编程逻辑思维游戏源码-3D环境.zip
少儿编程scratch项目源代码文件案例素材-泼溅猫.zip
内容概要:本文介绍了基于EMD-ARMA的组合风光出力预测方法,详细阐述了经验模态分解(EMD)和自回归移动平均(ARMA)模型的应用步骤。首先,通过EMD将原始发电数据分解为多个本征模态函数(IMF),然后用ARMA模型对各IMF分量进行建模和预测,最后将预测结果叠加重构,获得最终的风光功率预测值。文中还提供了简化的Python代码示例,帮助读者理解和实现该方法。 适合人群:从事新能源研究和技术开发的专业人士,尤其是对风光发电预测感兴趣的科研人员和工程师。 使用场景及目标:适用于需要提高风光发电预测精度的项目,旨在通过先进的数学模型优化电力调度和资源配置。 其他说明:本文提供的代码示例仅用于教学目的,实际应用中需根据具体情况调整和完善。此外,建议在实践中参考更多专业文献和寻求专家意见以确保预测模型的准确性和可靠性。
scratch少儿编程逻辑思维游戏源码-scratch RPG 战斗.zip
scratch少儿编程逻辑思维游戏源码-窗户冒险.zip
scratch少儿编程逻辑思维游戏源码-FC经典游戏 沙罗曼蛇.zip
少儿编程scratch项目源代码文件案例素材-跑酷版《我的世界》.zip
scratch少儿编程逻辑思维游戏源码-抜刀.zip
内容概要:本文介绍了永磁同步电机(PMSM)无位置传感器控制的一种创新方法,重点探讨了通过反电动势估计和扰动观测器增益设计来实现转子位置的精确估算。该方法避免了传统的PLL等位置观测器,仅需一次反正切计算即可获得转子位置,极大简化了系统复杂度。此外,模型控制器采用离散域设计,便于参数调整和适应不同电机参数。文中还提供了具体的Python代码示例,展示了从初始化电机参数到主循环控制的具体实现步骤。 适合人群:从事电机控制系统设计的研究人员和技术工程师,尤其是关注永磁同步电机无传感器控制领域的专业人士。 使用场景及目标:适用于需要简化调试流程、提高系统灵活性和适应多种电机参数的应用场景。主要目标是在保持高性能的同时降低硬件成本和系统复杂性。 其他说明:该方法不仅简化了调试过程,还提高了系统的鲁棒性和可靠性,特别适合于工业自动化、机器人技术和电动汽车等领域。
内容概要:本文深入探讨了乘用车双腔制动主缸的精细化建模及其在Simulink和Amesim中的联合仿真验证。文章首先介绍了双腔制动主缸的物理结构和动力学方程,特别是考虑了液压特性和机械传动的耦合关系。接着,作者详细描述了如何在Simulink中实现这些模型,并通过S函数处理变步长积分问题,确保仿真精度。此外,还讨论了联合仿真过程中遇到的数据交换频率问题,并提出了使用二阶保持器来补偿相位滞后的解决方案。最终,通过对不同推杆力输入条件下的仿真结果对比,验证了精细化模型的有效性和稳定性。 适合人群:从事汽车制动系统研究的技术人员、高校相关专业师生、对车辆动力学仿真感兴趣的工程师。 使用场景及目标:①帮助研究人员更好地理解和掌握双腔制动主缸的工作原理;②为后续更复杂的整车制动系统仿真提供可靠的子系统模型;③提高仿真精度,减少因模型简化带来的误差。 其他说明:文中提供了详细的建模步骤、公式推导、代码实现以及仿真结果对比,附带完整视频教程和参考资料,便于初学者学习。同时强调了实际应用中需要注意的关键细节,如流量计算、数据交换频率调整等。
scratch少儿编程逻辑思维游戏源码-Scratch版Windows11.zip
少儿编程scratch项目源代码文件案例素材-青蛙.zip
内容概要:本文详细介绍了光伏交直流混合微电网在离网(孤岛)模式下的双下垂控制仿真模型。该模型利用Matlab/Simulink工具进行构建和仿真,涵盖了直流微电网、交流微电网以及互联变换器(ILC)的结构和控制策略。直流微电网采用电压电流双闭环下垂控制,交流微电网则通过恒压控制和下垂控制来维持稳定的频率和电压。ILC采用双下垂控制策略,通过归一化处理和偏差调整,使得交流母线频率和直流母线电压趋于一致。此外,模型还包括采样保持、坐标变换、功率滤波、SVPWM等辅助环节,以确保系统的稳定运行和高效能量管理。实验结果显示,在负载突增的情况下,系统依然能够保持良好的波形质量和稳定性。 适合人群:对微电网控制系统感兴趣的科研人员、电力工程技术人员及高校师生。 使用场景及目标:适用于研究和验证光伏交直流混合微电网在离网模式下的控制策略,特别是双下垂控制的应用效果。目标是提升微电网的稳定性和能量管理效率。 其他说明:仿真环境为Matlab2020b及以上版本,部分模块仅支持高版本软件。对于希望深入了解双下垂控制机制的研究者,可以通过进一步的学习和交流获得更多信息。
内容概要:本文详细介绍了基于扩展卡尔曼滤波器(EKF)的INS(惯性测量单元)和GPS(全球定位系统)松组合导航技术。首先解释了为何需要松组合导航,即通过融合INS和GPS的优势,提高定位的稳定性和准确性。接着阐述了15状态下的EKF融合方法,涵盖速度、姿态、位置等多个系统动态参数的估计与更新。然后讨论了NED(北东地)坐标系的应用及其带来的直观物理意义。最后提供了简化的Python代码片段,演示了如何在EKF中融合INS和GPS数据,以获得连续、稳定的导航结果。 适合人群:从事导航技术研发的专业人士,尤其是对EKF、INS、GPS以及多传感器数据融合感兴趣的工程师和技术研究人员。 使用场景及目标:适用于需要高精度、高可靠性定位系统的应用场景,如自动驾驶汽车、无人机飞行控制系统等。目标是通过融合INS和GPS数据,克服单一传感器的局限性,提升整个导航系统的性能。 其他说明:文中提供的代码仅为概念验证性质,实际工程应用中还需考虑更多复杂的因素和优化措施。
内容概要:本文详细介绍了基于MATLAB Simulink平台的三相逆变器稳压控制仿真模型,重点探讨了孤岛运行环境下的电压电流双闭环控制策略及其LCL滤波电路的应用。首先,通过对主电路电流电压的采样并进行Park和Clark变换,将数据转换为dq坐标系下的电流电压值,然后输入双闭环控制系统进行精确调节。接着,通过反变换回到abc坐标系,并利用PWM调制对逆变器进行控制,最终实现了电压电流的稳定输出。文中还提供了简化的Matlab代码片段,展示了关键步骤的具体实现方法。此外,作者通过多次仿真实验验证了该控制策略的有效性和鲁棒性。 适合人群:从事电力电子、自动化控制领域的研究人员和技术人员,尤其是对逆变器控制策略感兴趣的读者。 使用场景及目标:适用于需要深入了解三相逆变器在孤岛运行环境下的稳压控制机制的研究人员和技术人员。目标是掌握电压电流双闭环控制策略以及LCL滤波电路的设计与应用,提高逆变器系统的稳定性和可靠性。 其他说明:本文不仅提供了理论分析,还包括具体的仿真模型和代码示例,有助于读者更好地理解和实践相关技术。