版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基於軟硬整合觀點A01_c复习基本OOP技术(c)By 高煥堂基於軟硬整合觀點6、结构的接口(卡榫函数) 卡榫函数 所谓卡榫(Hook),就是用来接合两个东西的接口。如果两个东西于不同时间出现,则一方会预留虚空,给予另一边于未来时刻能以实体来填补该空间,两者虚实相依,就密合起来了。设计优良的卡榫, 可以让实体易于新陈代谢、抽换自如(Plug and Play, 俗称PnP)。Template Method設計模式GoFHook函數 变与不变的分离(Separate code thatchanges from the code that doesnt)是设计卡榫(Hook)函数及应用框架之基本原
2、则和手艺。 分离出变(Variant)与不变(Invariant)部份之后,就可以将不变部份写在父类别(Super- class)里,而变的部份就写在子类别(Subclass)里。 然后,藉由C+的类别继承(Inherit)机制组织起来 。繼BoardTrainCar/ C+class Car : Vehicle/.Vehicle 或者,藉由Java的类别扩充(Extend)机制组织起来。擴DoorLightTire/ Javaclass Tire extends Car/.Car 卡榫函数的Java实现 在Java里,使用抽象(abstract)函数或可覆写(overridable)函数来实
3、现卡榫函数。interface IShape void template_paint(Graphics gr);/ 一般接口/ Shape.javaimport java.awt.*;public abstract class Shape implements IShape public void template_paint(Graphics gr) invariant_paint(gr); / 畫背景hook_paint(gr);/ 畫前景private void invariant_paint(Graphics gr) gr.setColor(Color.black); gr.fillR
4、ect(10,30, 200,100);/ 默認行為abstract protected void hook_paint(Graphics gr);/ Bird.javaimport java.awt.*;public class Bird extends Shape private void hook_paint(Graphics gr)/ 畫圖(海鷗)指令gr.setColor(Color.cyan); gr.drawArc(30,80,90,110,40,100); gr.drawArc(88,93,90,100,40,80);gr.setColor(Color.white); gr.d
5、rawArc(30,55,90,150,35,75); gr.drawArc(90,80,90,90,40,80);基於軟硬整合觀點7、IoC机制与Default函数 卡榫函数实现IoC机制 控制反转(IoC: Inversion of Control) IoC机制源自于OO语言(如C+等)的类别继承体系,例如C+语言中,基类的函数可以主动调用子类的函数,这就是典型的IoC机制。 基类与子类之间,主控权是在基类手上, 透过Hook函数来调用子类 通常基类是撰写在先,而子类则撰写在后, 这种前辈拥有主导权,进而控制后辈之情形,就通称为控制反转。 默认(Default)行为 基类的重要功能:提供默
6、认(预设)行为 基类可事先定义许多默认(Default)函数。这些默认函数可让子类来继承(或调用) 之。 默認行為IoCinterface IShape void template_paint(Graphics gr);/ 一般接口/ Shape.javaimport java.awt.*;public abstract class Shape implements IShape public void template_paint(Graphics gr) invariant_paint(gr); / 畫背景hook_paint(gr);/ 畫前景private void invariant
7、_paint(Graphics gr) gr.setColor(Color.black); gr.fillRect(10,30, 200,100);/ 默認行為abstract protected void hook_paint(Graphics gr);/ Bird.javaimport java.awt.*;public class Bird extends Shape private void hook_paint(Graphics gr)/ 畫圖(海鷗)指令gr.setColor(Color.cyan); gr.drawArc(30,80,90,110,40,100); gr.drawArc(88,93,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗器械耗材销售合同
- 做五金建材销售合同
- 住宅房地产销售合同
- 算力存储产品销售合同
- 商务信息咨询销售合同
- 猪场饲喂设备销售合同
- 带租约住宅销售合同
- 移动水泥板房销售合同
- 散装粮食白酒销售合同
- 教育资源代理销售合同
- 2025年度中国汽车产业分析报告
- 呼和浩特市2026年初三年级第二次模拟考试历史试卷(含答案)
- 幼儿园家园协同幼儿行为问题干预效果研究-基于协同干预记录与行为变化数据分析深度研究
- 2026贵州贵阳产控安居投资运营有限公司第一批社会招聘8人笔试参考题库及答案解析
- 2026年CAIE人工智能工程师LevelⅡ试题及答案
- 2026年山东德州市高三二模高考历史试卷试题(含答案详解)
- 新版电力重大事故隐患判定标准及治理监督管理规定解读
- 2026年新高考 I 卷语文高频考点预测押题卷含解析
- AI在应急技术与管理中的应用
- 电子产品结构及工艺
- 2025-2026学年鲁教版(新教材)小学信息技术五年级下册(全册)教学设计(附目录p112)
评论
0/150
提交评论