TypeScript之泛型与变体(1)
TypeScript之泛型与变体
TypeScript之泛型与变体
TypeScript之泛型与变体
本节的内容分为三段:
第一段(原本继承的弊端)
第二段(访问者模式)
第三段(变体分离)
首先,我们现在要设计一个显示系统。主要功能就是:一个屏幕要显示一堆文档
(text,picture,parature),不同类型的文档,有不同的渲染方式
按传统的继承方式去实现的话就是 设计一个Doc的接口


但是,这种传统的继承对于软件的扩展有着极大的限制,因为它把内容和操作放在了一个实体中,比如我现在想给Doc加一个print方法,结果就是每个子元素都要重写一遍是相当的坑爹
为此,软件开发的我们提出了 (访问者模式),当然这个模式也不是最好的。
第二段(访问者模式)
这种模式,主要是设计出了一个公共的接口,accept。

因为这个不是重点,所以我并不想多讲。因为它还不是最好的分离
而变体却是最好的分离。它的本质是将继承链关系反转。在我们的印象中,Doc的子类继承了父类。就相当于Doc在金字塔的低端。它的子类们在金字塔的上端。
但是在变体分离中,我们要想象成 Doc的盒子装着 Doc的子类们。但是他们并没有代码上的继承关系

2023-8-26 惠晴_GD