typescript设计模式之策略模式实例解析
程序员文章站
2022-08-04 17:40:33
typescript 设计模式--策略模式
用到的地方
1.代码中switch-case,if-else if这些比较多,并且可能扩展的
2.需要安全地封装多种同一类型的操作时
定义:策略模式定义...
typescript 设计模式--策略模式
用到的地方
1.代码中switch-case,if-else if这些比较多,并且可能扩展的
2.需要安全地封装多种同一类型的操作时
定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们可以相互替换,让算法独立于使用它的客户而独立变化。
例子:
interface cell { type: string; value: any; } interface render { render(cell: cell): void; } class daterender implements render{ public render(cell: cell) { } } class imagerender implements render { public render(cell: cell) { } } class selectrender implements render { public render(cell: cell) { } } class defaultrender implements render { public render(cell: cell) { } } class excel { protected cells: cell[]; constructor() { this.cells = []; } public init() { for(let cell of this.cells) { let cellrender: render = null; if(cell.type == 'date') { cellrender = new daterender(); }else if(cell.type == 'image') { cellrender = new imagerender(); }else if(cell.type == 'select') { cellrender = new selectrender(); }else{ cellrender = new defaultrender } cellrender.render(cell); } } } function showexcell() { let excell = new excel(); excell.init(); } showexcell();