《研磨设计模式》读书笔记之:命令模式、迭代器模式

前言:本篇系看完《研磨设计模式》一书的个人理解和总结,可能存在不正确的地方,看时需要持怀疑态度。另外,所有的图都是示意图,示意,示。

命令模式(Commad):

几点解释:

  1. 命令模式中分为三个角色:Invoker、Commad、Receiver。客户端调用Invoker,Invoker持有Commad对象并转调其对应方法,而Commad持有Receiver对象并转调其对应方法。因此这三层之间可以灵活的组合使用。
  2. 简化的命令模式,可以让Commad对象实现具体的功能,不同的Commad实现对应了不同的命令。Invoker可以不持有Commad对象,而是通过传参的方式来获得一个Commad对象。再进一步,传入Commad参数时可以使用匿名内部类的方式传入,类似于Java的回调模式。
  3. 上面说了命令模式可以退化为Java的回调实现,而回调方式是实现模板方法模式的一种方式,也即命令模式可以实现类似模板方法模式的功能:在Invoker中固定对应的算法骨架,需要子类参与的步骤通过传参来获得。
  4. 本质:将请求封装为一个个的命令。以命令对象为单位之后,实现日志、撤销、队列等功能就很容易。
  5. 多个命令可以组合为一个宏命令,类似组合模式。很容易联想到事务的实现,事务对应了一组命令,执行完一个命令,就从待执行日志中删除对应命令,并生成一个反操作放入 UndoLog中,当发生错误需要回滚时,就执行对应的UndoLog的对应的反操作就实现了回滚。

迭代器模式(Iterator):

几点解释:

  1. 迭代器模式要解决的问题是 对于多个内部实现不同的容器,给出一种统一的方式来访问容器内的元素。
  2. 之前是客户端直接访问容器对象,对不同的容器需要用不同的方式访问。现在,迭代器屏蔽了访问不同容器的差异,并对外提供了统一的访问方式,也就是把对不同容器的访问工作抽离封装到了迭代器中。
  3. 因为迭代器需要访问到容器中的元素,比较合适的方式即 将迭代器的具体实现作为容器类的一个 私有内部类,私有内部类会持有外部类实例的一个引用,然后在容器类中提供一个共有方法来返回对应的迭代器的实例即可。
  4. 本质:提供不同容器的一种通用的访问方式,也可以做一些访问控制。
  5. 和观察者模式一样,Java中也提供了迭代器模式的实现,大量的容器也都支持迭代器模式。
  6. 如果想要在迭代的同时进行元素的删除,可以使用容器的迭代器。
内容概要:本文详细介绍了利用COMSOL软件对人体皮肤温度场进行数值模拟的方法技术细节。首先解释了COMSOL作为多物理场仿真的工具及其在生物医学工程领域的应用价值,然后逐步讲解了如何建立皮肤的几何模型,包括表皮层真皮层的具体参数设置。接着探讨了物理场的选择配置,如热传导方程、材料属性(导热系数)以及边界条件(对流换热系数、环境温度)。此外,还讨论了热源的引入方式,即通过代谢产热血液灌注来模拟体内热量生成。最后,阐述了求解过程中的技巧,如网格划分、求解器设置,并展示了最终获得的人体皮肤温度分布云图及其实际意义。 适用人群:从事生物医学工程、热物理学等相关领域的科研工作者,尤其是那些希望深入了解人体皮肤温度场特性的研究人员。 使用场景及目标:适用于需要精确掌握人体皮肤温度分布的研究项目,例如皮肤生理功能探究、疾病诊断、药物递送系统设计等。通过对该模型的学习应用,能够更好地理解皮肤细胞在正常运作代谢下的热环境,从而为相关研究提供理论依据技术支持。 其他说明:文中不仅提供了详细的建模步骤指导,还包括了一些实用的小技巧,如参数化扫描、自适应网格划分等,有助于提高建模效率准确性。同时,作者还分享了将模型应用于实际问题的经验,如降温面膜的设计、烧伤评估等,体现了该模型的广泛适用性实用性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值