在前面的简单工厂模式中,通常将每个类、接口定义到不同的文件中。在面向对象开发思想中有一个重要的原则就是封装变化点,在实际操作过程中,

通常被调用方的代码不要去更改,而是增加,这是面向对象的开闭原则。在简单工厂模式中存在一个问题,就是简单工厂类需要知道不同具体类的实现,如果现在多了一种算法比如乘法,

我们可以增加一个乘法类,但是需要在工厂类中修改代码,判断如果传入的是"*",则需要实例化另一个乘法类,这样就不太符合面向对象的开发思想。

通过使用策略模式,可以有效避免上述的问题,而将具体要实例化哪个算法类交给调用方负责。

interface ICompute{Compute(a:number,b:number):number;
}class AddComputer1 implements ICompute{public Compute(a:number,b:number):number{return a+b;}
}class SubComputer1 implements ICompute{public Compute(a:number,b:number):number{return a-b;}
}class ComputeStratge{public compute(icompute:ICompute,a:number,b:number):number{return icompute.Compute(a,b);}
}var computestatge=new ComputeStratge();
var result=computestatge.compute(new AddComputer1(),100,200);
console.log(result);

欢迎加入QQ群讨论:573336726

转载于:https://www.cnblogs.com/malaoko/p/7603173.html

15-TypeScript策略模式相关推荐

  1. 15. 星际争霸之php设计模式--策略模式

    题记 ============================================================================== 本php设计模式专辑来源于博客(jy ...

  2. Golang设计模式——15策略模式

    策略模式 优点 缺点 场景 代码 其他设计模式 策略模式 优点 策略模式提供了对"开闭原则"的完美支持,用户可以在不修改原有系统的基础上选择算法或行为,也可以灵活地-增加新的算法或 ...

  3. java(15)-策略模式(Strategy Pattern)

    一.了解(都是跟张龙老师的视频学的): 1.策略模式:a)封装变化的概念.b) 编程中使用接口,而不是对接口的实现.这是面向接口的编程. 2.策略模式的定义: a)定义一组算法,将每个算法都封装起来, ...

  4. 设计模式之策略模式(Strategy)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

  5. Java中的策略模式实例教程

    策略模式是一种行为模式.用于某一个具体的项目有多个可供选择的算法策略,客户端在其运行时根据不同需求决定使用某一具体算法策略. 策略模式也被称作政策模式.实现过程为,首先定义不同的算法策略,然后客户端把 ...

  6. C++模式学习------策略模式

    当遇到同一个对象有不同的行为,方法,为管理这些方法可使用策略模式. 策略模式就是对算法进行包装,是把使用算法的责任和算法本身分割开来.通常把一个系列的算法包装到一系列的策略类里面,这些类继承一个抽象的 ...

  7. 这可能是把策略模式讲的最通俗易懂得文章了!

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 本文转载自微信公众号:漫话编程  周末无事,窝在家里面看<权力的游戏第八季>,看的 ...

  8. 实践:使用Spring 原生注解来快速实现 策略模式 + 工厂模式

    作者:Richard_Yi juejin.im/post/5db0e910518825648f2ef355 前言 这阵子在做项目组重构的工作,工作中的一部分就是就目前代码库中与企业交互的逻辑抽离出来, ...

  9. 两种语言实现设计模式(C++和Java)(三:策略模式)

    策略模式是指定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换.本模式使得算法可独立于使用它的客户而变化.也就是说这些算法所完成的功能一样,对外的接口一样,只是各自实现上存在差异.用策略模式 ...

  10. Head First设计模式之策略模式(Strategy)

    小白将从以下几点对策略模式进行解析 策略模式引入的设计技巧 策略模式的定义及类图 策略模式的优缺点 策略模式的应用场景 策略模式实战 总结 零.策略模式引入的技巧 先过一遍,放入脑海中,等看完后面所有 ...

最新文章

  1. java linux 时区_java同步/设置Linux系统时间
  2. unslider的用法详解
  3. ie php脚本引擎,使用php重新实现PHP脚本引擎内置函数
  4. WebService入门教程_HTTP协议学习
  5. 【nginx配置】 proxy_pass反向代理配置中url后面加不加/的说明
  6. 语义分割和实例分割以及目标检测的区别(转)
  7. 【转载保存】java 23种设计模式 深入理解
  8. ubutnu16.04下Intel Realsense D435驱动的安装和python环境的配置
  9. java开发环境怎样选择_怎样搭建Java开发环境?
  10. 苹果隐私追踪新规发布后 Android广告支出涨10%
  11. python由编译器将源程序转化为机器语言_python初识
  12. VS2008超有用的快捷键
  13. JSK-12 最后一个单词的长度【入门】
  14. 242种颜色样式、中英文名称及十六进制的值
  15. 64位Win10 Modelsim破解及证书LICENSE.TXT无法生成解决方法
  16. 山东网通和电信的DNS
  17. 未能找到使用主机名称的服务器,未能找到使用指定主机名称的服务器
  18. 交友 它能让霍金有一口伦敦腔,也在帮聋哑人重新开口说话
  19. [gmoj 3505]【NOIP2013模拟11.4A组】积木
  20. windows笔记本查看电池损耗

热门文章

  1. CSRF漏洞原理/防御
  2. 永大电梯小键盘服务器显示黑色条杠,永大电梯小键盘操作手顺
  3. Hadoop Hive概念学习系列之HiveQL编译基础(十)
  4. 破旧立新 “云”称霸
  5. RequireJS模块化后JS压缩合并
  6. 暴怒程序员的呐喊:别让我做那些没用的东西
  7. 面试题 02.05. 链表求和
  8. DNS的正、反以及双向解析
  9. 怎样把照片中的头像扶正_微信头像用对了,2020运气差不了
  10. 国庆快乐,送3本Python书