版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2027年备考人力资源管理专业知识与实务 详细试题及答案一
- 药品管理法培训考试模拟试卷(含答案)
- 萝北县2026年中级经济师金融专业考试题库及答案
- 行测+申论联合模拟题库及答案
- 诊断学人卫题库及答案
- 赴四川大学公开考核招聘工作人员模拟试卷(含答案)
- 退役军人面试题库及参考答案
- 邮政集团考试题库及参考答案
- 金融监管法律科目2026年模拟试卷详解(含答案)
- 银行从业资格考试银行业法律法规与综合能力章节题库带答案
- 【语文+答案】江苏无锡市2026-2027学年上学期高三期中考试语文试卷
- 雨课堂学堂在线学堂云《国家安全概论(吉林)》单元测试考核答案
- DB32T 4355-2022 建筑施工附着式升降设施安全技术规程(修)
- 废气处理行业营销策略方案
- 法务岗位招聘笔试题与参考答案(某大型国企)
- 七年级地理下学期人教版 8.3撒哈拉以南非洲第二课时 教学设计
- T-CECS120-2021套接紧定式钢导管施工及验收规程
- 年产100万套2GWh高性能摩托车锂离子动力电池产业基地项目可行性研究报告-立项备案
- 授权他人使用车辆委托书
- 幼儿园语言领域活动设计
- 上海财经大学《801经济学》历年考研真题及详解
评论
0/150
提交评论