面向对象的架构设计
高焕堂老师的android面向对象视频,讲的非常好。 http://www.maiziedu.com/u/2021/
其中他对 面向对象的理解,延伸出了EIT的概念。
E表示父类
I表示接口
T表示子类
E是控制点,透过I来控制T。
用代码来表示用两种方式:
第一种方式:
public class Parent { public void Fun() { doSomething(); } public abstract void onDoSomething() { } } public class Child extend Parent { public void onDoSomething() { //具体实现;不同的子类实现 这里的代码有不同的处理逻辑 } } public class Main { Parent object = new Child(); object . Fun(); }
子类集成父类,实现了某个抽象方法。
Main类创建对象,来达到父类调用子类的执行流程。 这也叫做 IOC,依赖倒置。
架构师能够利用EIT能设计非常好的架构,
其中E和I是架构师来写的,T是客户端程序员写的。
E和I的作用在于复用。
T的作用在于拥抱变化。
举个例子,比如说:
吃火锅。
在客人来之前,火锅店老板已经把桌子和桌子中央的火锅架(凹下去的那个)弄好。 (架构师)
客人来之后,客人选择吃什么汤底,普通锅(中间没有挡板)还是鸳鸯锅。选择之后,就能把火锅盘放到火锅架上。(客户端程序员)
假如说,桌子火锅架和火锅都是融合在一体的,其中只有一个桌子是鸳鸯锅,那么来了三个客人都想吃鸳鸯锅。
这样就不能同时符合三个客人的需求了。
再举例:
汽车的引擎就是E和I
轮胎就是T
汽车在不同环境 换 不同的轮胎,能够驾驶在沙漠、草原、高速路。
在软件系统中也是一样道理。
EIT的设计使得系统变得分离,达到最终的目的是复用。E和I是复用的。
从大的系统架构来分析。
框架就是 E和I
插件就是 T
按照这样的架构模式,插件是可插拔的。