版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年眉山市东坡区广播电视台(融媒体中心)人员招聘笔试参考题库及答案解析
- 2026年宁夏回族自治区中卫市广播电视台(融媒体中心)人员招聘考试备考题库及答案解析
- 2026年忻州市忻府区林业系统人员招聘笔试模拟试题及答案解析
- 2026年郑州市管城回族区广播电视台(融媒体中心)人员招聘笔试参考题库及答案解析
- 2026年陕西省铜川市广播电视台(融媒体中心)人员招聘笔试备考题库及答案解析
- 2026年渭南市临渭区广播电视台(融媒体中心)人员招聘笔试参考题库及答案解析
- 2026年郑州市中原区广播电视台(融媒体中心)人员招聘笔试参考试题及答案解析
- 2026年贵州省毕节市广播电视台(融媒体中心)人员招聘笔试参考试题及答案解析
- 2026年浙江省金华市林业系统人员招聘考试模拟试题及答案解析
- 2026年遵义市汇川区林业系统人员招聘考试参考题库及答案解析
- 2025年度哈尔滨“丁香人才周”(春季)方正县事业单位引才招聘95人模拟试卷及1套参考答案详解
- 工地外架班组安全培训课件
- 建筑施工废弃物处理方案
- 心理老师课题申报书范文
- 工程项目验收配合工作标准化方案
- 中学时间规划教案
- 2025年河北衡水市市场监督管理局选聘事业单位工作人员4名笔试备考题库及答案解析
- 2024年下半年中国铁路武汉局集团有限公司校招笔试题带答案
- T-CCSAS 052-2025 三氯氢硅还原法多晶硅生产安全技术规范
- 蔬菜委托检测协议书范本
- 陪玩培训课件图片
评论
0/150
提交评论