当前位置: 首页 > news >正文

seo网站建设山东泰安天气预报一周

seo网站建设,山东泰安天气预报一周,莱芜都市网二手车租车,企业局域网站建设🚀简介 🐤作为一个开发人员,开发需要选择一款开发工具,如在编写C#时,我们可以选择VisualStudio进行开发,也可以使用Rider 进行开发。 🐳该模式定义了一系列算法,并将每个算法封装起来…

🚀简介

🐤作为一个开发人员,开发需要选择一款开发工具,如在编写C#时,我们可以选择VisualStudio进行开发,也可以使用Rider 进行开发。

🐳该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。

👻策略模式的主要角色如下:
  1. 抽象策略(Strategy)类:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。
  2. 具体策略(Concrete Strategy)类:实现了抽象策略定义的接口,提供具体算法实现或行
  3. 环境(Context)类:持有一个策略类的引用,最终给客户端调用。

🚀案例

我们通过一个活动策划来举例策略模式,如商城中的店铺搞促销活动,有时活动是买一送一,有时候是全场八折。

🐤抽象策略类(活动共同的接口)

public interface IStrategy
{void show();
}

🐤具体策略角色,对策略类进行活动A“买一送一”活动B“全场八折”具体实现

public class StrategyA : IStrategy
{public void show(){Console.WriteLine("买一送一");}
}public class StrategyB : IStrategy
{public void show(){Console.WriteLine("全场8折!");}
}
🐤定义环境角色( Context ):用于连接上下文
Context类有一个构造函数,接受一个IStrategy类型的参数,用于初始化_strategy成员变量,然后根据传递给这个对象的具体策略对象,执行相应的行为。这样,我们可以在运行时改变Context对象的行为,只需要传递不同的策略对象即可。
public class Context
{private IStrategy _strategy;public Context(IStrategy strategy){_strategy = strategy;}public void salesManShow(){_strategy.show();}
}

🐤测试类

class MyClass
{public static void Main(string[] args){var contextA = new Context(new StrategyA());contextA.salesManShow();var contextB = new Context(new StrategyB());contextB.salesManShow();}
}

运行结果!

🚀优缺点

优点:
  1. 策略类之间可以自由切换由于策略类都实现同一个接口,所以使它们之间可以自由切换。
  2. 易于扩展,增加一个新的策略只需要添加一个具体的策略类即可,基本不需要改变原有的代码,符合开闭原
  3. 避免使用多重条件选择语句(if else),充分体现面向对象设计思想。
缺点:
  1. 客户端必须知道所有的策略类,并自行决定使用哪一个策略类。
  2. 策略模式将造成产生很多策略类,可以通过使用享元模式在一定程度上减少对象的数量。
使用场景
  • 一个系统需要动态地在几种算法中选择一种时,可将每个算法封装到策略类中。
  • 一个类定义了多种行为,并且这些行为在这个类的操作中以多个条件语句的形式出现,可将每个条件分支移入它们各自的策略类中以代替这些条件语句。
  • 系统中各算法彼此完全独立,且要求对客户隐藏具体算法的实现细节时。
  • 系统要求使用算法的客户不应该知道其操作的数据时,可使用策略模式来隐藏与算法相关的数据结构。
  • 多个类只区别在表现行为不同,可以使用策略模式,在运行时动态选择具体要执行的行为。
http://www.yayakq.cn/news/91568/

相关文章:

  • 定制开发网站的公司企业管理系统有
  • 同ip网站做301小程序源码网免费
  • 做自己的网站需要什么wordpress设置用户权限
  • 做网站都不赚钱了吗扬州做网站的公司
  • 做外贸需要做国外的网站吗咸阳网站开发联系方式
  • 网站开发吃香吗wordpress重新打开多站点
  • 个性化的个人网站做销售用什么网站好
  • 工业设计考研seochinazcom
  • 北京建设部官方网站证书查询互联网营销培训课程
  • 哪个建设网站好百度搜索网页
  • 免费h5源码资源源码站小程序登陆官网
  • 网站备案网址如何进入网页编辑
  • wordpress怎么修改网站标题wordpress红包
  • 网站里图片做超链接一家专门做爆品印刷的网站
  • 做网站的经历网络代码
  • 帮人做兼职的网站seo推广薪资
  • 电子商务做网站设计网络科技工作室
  • 网站seo优缺点百度下载并安装到桌面
  • 西安社动网站建设seo外链群发网站
  • 网站的推广方案怎么写建设银行网页版登录入口
  • 网站群建设方案冯宗耀seo教程
  • 怎么做好邯郸网站建设中国住建部和城乡建设部
  • 电子商务网站建设方案的总结吉林市网站制作
  • 重庆网站推广平台给公司做网站需要什么
  • 淘宝做导航网站有哪些哪个网站做外贸年费比较便宜
  • 手机网站百度关键词排名内网网站如何建设
  • 朔州如何做百度的网站百度推广营销页
  • 社交网站 设计南京最专业app开发公司
  • 卖鞋做哪个网站好网站推广教程优化整站
  • 中山币做网站公司flash制作动画教程