欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

typescript设计模式之策略模式实例解析

程序员文章站 2022-04-15 19:45:02
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();