卡榫函数
2015-10-08 21:41
211 查看
卡榫函数:
所谓「卡榫(Hook)」,就是用来接合两个东西的接口。如果两个东西于不同时间出现,则一方会预留虚空,给予另一边于未来时刻能以实体来填补该空间,两者虚实相依,就密合起来了。设计优良的卡榫,可以让实体易于新陈代谢、抽换自如(Plug and Play, 俗称PnP)。
•变与不变的分离(Separate code that changes from the code that doesn’t)是设计卡榫(Hook)函数及应用框架之基本原则和手艺。
•分离出变(Variant)与不变(Invariant)部份之后,就可以将不变部份写在父类别(Super-class)里,而变的部份就写在子类别(Subclass)里。
在Java里,使用抽象(abstract)函数或可覆写(overridable)函数来实现卡榫函数。
卡榫函数实现IoC机制:
•控制反转(IoC: Inversion of Control)
•IoC机制源自于OO语言(如C++等)的类别继承体系,例如C++语言中,基类的函数可以主动调用子类的函数,这就是典型的IoC机制。
•基类与子类之间,主控权是在基类手上,透过Hook函数来调用子类
•通常基类是撰写在先,而子类则撰写在后,这种前辈拥有主导权,进而「控制」后辈之情形,就通称为「控制反转」。
•基类的重要功能:提供默认(预设)行为
•基类可事先定义许多「默认」(Default)函数。这些默认函数可让子类来继承(或调用)之。
所谓「卡榫(Hook)」,就是用来接合两个东西的接口。如果两个东西于不同时间出现,则一方会预留虚空,给予另一边于未来时刻能以实体来填补该空间,两者虚实相依,就密合起来了。设计优良的卡榫,可以让实体易于新陈代谢、抽换自如(Plug and Play, 俗称PnP)。
•变与不变的分离(Separate code that changes from the code that doesn’t)是设计卡榫(Hook)函数及应用框架之基本原则和手艺。
•分离出变(Variant)与不变(Invariant)部份之后,就可以将不变部份写在父类别(Super-class)里,而变的部份就写在子类别(Subclass)里。
在Java里,使用抽象(abstract)函数或可覆写(overridable)函数来实现卡榫函数。
•控制反转(IoC: Inversion of Control)
•IoC机制源自于OO语言(如C++等)的类别继承体系,例如C++语言中,基类的函数可以主动调用子类的函数,这就是典型的IoC机制。
•基类与子类之间,主控权是在基类手上,透过Hook函数来调用子类
•通常基类是撰写在先,而子类则撰写在后,这种前辈拥有主导权,进而「控制」后辈之情形,就通称为「控制反转」。
•基类的重要功能:提供默认(预设)行为
•基类可事先定义许多「默认」(Default)函数。这些默认函数可让子类来继承(或调用)之。
相关文章推荐
- on the way to c++
- UVa 893 - Y3K Problem
- 南阳oj A+BproblemII Java 解决 题目103
- Django中关于url的用法
- 021-ARC与分类-OC笔记
- 020-OC内存管理-OC笔记
- 缩放图片
- LA 3667 Ruler 两种不同形式的搜索来解决
- DEDECMS修改文章TAG 给TAG加链接 去掉TAG字数限制
- c#遍历checkBox控件,并用MessageBox显示出来
- 卡榫函数实现API
- Leetcode87: Find Minimum in Rotated Sorted Array
- 019-OC特有语法-OC笔记
- 理解依赖注入(Dependency Injection)
- 剑指offer—把二叉树打印成多行
- break 和continue以及return的区别
- leetcode 21:Merge Two Sorted Lists(15-10-9)
- Generate Parentheses
- 018-继承-OC笔记
- 017-封装-OC笔记