看看用TypeScript怎样实现常见的设计模式,顺便复习一下。
学模式最重要的不是记UML,而是知道什么模式可以解决什么样的问题,在做项目时碰到问题可以想到用哪个模式可以解决,UML忘了可以查,思想记住就好。
这里尽量用原创的,实际中能碰到的例子来说明模式的特点和用处。
适配器模式 Adapter
特点:把类或接口转换成另一个接口以便系统调用。
用处:当系统需要引入多个功能类并且这些功能的接口不统一时可以考虑用适配器模式把它们转成统一的接口,现实中的例子很多,比如充电器接口适配器。
注意:分为对象适配器和类适配器。
适配器模式的目的主要在于解决接口兼容性。
下面用TypeScript简单实现一下适配器模式:
假定现在项目已经在用一个画图接口Graph以及它的实现Canvas2D:
interface Graph{ drawLine(); drawPie(); }class Canvas2D implements Graph{ drawLine(){ console.log('draw 2d line'); } drawPie(){ console.log('draw 2d pie'); } }
项目升级需要提高UI美观,引入3D画图库Canvas3D,两者接口不一样:
class Canvas3D{ draw3DLine(){ console.log('draw 3d line'); } draw3DPie(){ console.log('draw 3d pie'); } }
项目是依赖接口Graph的,如果要直接加上3d功能就需要改接口,这个代价比较大,这时适配器派上用场:
网友评论