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

个体户可以做网站么怎样自己做网站

个体户可以做网站么,怎样自己做网站,视频交易类网页,大网站建设规范设计模式之策略模式 Strategy Pattern V1.0核心概念角色代码示例程序运行结果代码讲解 适用范围 V1.0 核心概念 策略模式是一种行为型设计模式,其核心思想是业务类执行某个动作时,可以使用该动作的不同的实现,并在程序运行中可以切换使用该…

设计模式之策略模式 Strategy Pattern

    • V1.0
    • 核心概念
    • 角色
    • 代码示例
      • 程序运行结果
      • 代码讲解
    • 适用范围

V1.0

核心概念

策略模式是一种行为型设计模式,其核心思想是业务类执行某个动作时,可以使用该动作的不同的实现,并在程序运行中可以切换使用该动作的不同的实现。

不同的动作的实现被封装为不同的类,这些具体实现类继承统一的接口,因此业务类可以持有任一动作具体实现,并可以对其进行替换。

角色

  • Strategy(策略接口):定义了动作的统一接口,具体策略需要实现该接口。
  • ConcreteStrategy(具体策略):实现了策略接口,不同的具体策略实现了同一动作的不同实现。
  • Context(上下文):持有具体策略的引用,在业务中执行具体策略,并可以更换不同的具体策略,以使用同一动作的不同的实现方式。

代码示例

/// <summary>
/// 交通方式策略接口,定义了动作的统一接口
/// </summary>
public interface ITransportationMode
{public void Travel();
}/// <summary>
/// 具体策略,乘坐飞机
/// </summary>
public class ConcreteModeAirplane:ITransportationMode
{public void Travel(){Console.WriteLine("Travel by airplane");}
}/// <summary>
/// 具体策略,乘坐火车
/// </summary>
public class ConcreteModeTrain : ITransportationMode
{public void Travel(){Console.WriteLine("Travel by train");}
}/// <summary>
/// 具体策略,乘坐长途汽车
/// </summary>
public class ConcreteModeCoach : ITransportationMode
{public void Travel(){Console.WriteLine("Travel by coach");}
}/// <summary>
/// 上下文类,可以使用不同的出行方式出行
/// </summary>
public class ContextTravelPlan
{/// <summary>/// 出行方式/// </summary>public ITransportationMode mean;public ContextTravelPlan(ITransportationMode mean){this.mean = mean;}/// <summary>/// 更换策略,即出行方式/// </summary>/// <param name="newMean"></param>public void setMean(ITransportationMode newMean){this.mean = newMean;}public void travelTo(string place){mean.Travel();Console.WriteLine($"Traveled to {place}");}
}public class Program
{public static void Main(string[] arg){//建立具体策略对象ConcreteModeAirplane meanAirplane = new();ConcreteModeTrain meanTrain = new();ConcreteModeCoach meanCoach = new();//建立旅行计划上下文类ContextTravelPlan ctp = new(meanAirplane);//使用飞机方式出行ctp.travelTo("Shanghai");//更换策略,使用火车出行方式ctp.setMean(meanTrain);//使用火车方式出行ctp.travelTo("Chongqing");//更换策略,使用长途汽车出行方式ctp.setMean(meanCoach);//使用长途汽车出行ctp.travelTo("Jinan");}
}

程序运行结果

Travel by airplane
Traveled to Shanghai
Travel by train
Traveled to Chongqing
Travel by coach
Traveled to Jinan

代码讲解

  • ITransportationMode接口:策略接口,定义了交通方式的统一接口Travel,具体的交通方式需要实现这个接口。
  • ConcreteModeAirplane类:具体策略,实现了交通方式接口Travel,为乘坐飞机出行,接口实现中输出了乘坐飞机出行的信息。
  • ConcreteModeTrain类:具体策略,实现了交通方式接口Travel,为乘坐火车出行,接口实现中输出了乘坐火车出行的信息。
  • ConcreteModeCoach类:具体策略,实现了交通方式接口Travel,为乘坐长途汽车出行,接口实现中输出了乘坐长途汽车出行的信息。
  • ContextTravelPlan类:上下文类,是具体的业务逻辑,构造时使用具体出行方式对象(具体策略对象)构建,并可以使用setMean方法替换具体出行方式(具体策略)。toTravel方法是上下文类的具体的业务逻辑,其中使用其持有的出行方式mean,出行到指定的地方。
  • Program类:客户端代码,创建了具体出行方式(具体策略),使用飞机出行方式meanAirplane创建了出行上下文类,执行出行动作。更换出行方式,即具体策略,再次进行出行动作,重复2次。

适用范围

  • 当一个动作可能有多种实现,并且需要在不同时间修改使用不同的动作实现时。
  • 将来可能添加新的动作实现的场景,使用策略模式可以不修改现有的代码。
http://www.dtcms.com/wzjs/296548.html

相关文章:

  • 网站建设的视频长沙网站seo报价
  • 网站宣传高新技术企业搜索引擎优化要考虑哪些方面
  • 最新天气预报最新消息品牌关键词优化哪家便宜
  • b2b网站流量建设营销自动化工具
  • 途牛网站大数据建设seo优化是怎么回事呢
  • 网站怎么做备份uc浏览器关键词排名优化
  • 创造与魔法官方网站做自己喜欢的事今日新闻最新事件
  • 岳麓区专业的建设网站公司seo标题优化
  • 做企业网站找谁引擎搜索是什么意思
  • 西安企业网站制作价格手机推广平台有哪些
  • 上海网站建设网页制作联系方式百度收录入口在哪里查询
  • 个人域名做邮箱网站seo下拉优化
  • 太仓市住房城乡建设局网站新站seo竞价
  • 浙江网站建设价位今天军事新闻最新消息
  • 做网站需要做什么页面新闻式软文经典案例
  • 合肥做网站维护的公司网络推广工作好做不
  • 群晖nas做网站服务器长沙靠谱关键词优化公司电话
  • 苏州h5网站建设价格百度 人工客服
  • 点胶喷嘴技术支持东莞网站建设企业网站模板源码
  • 新版wordpress头像广州seo排名收费
  • 网站建设学习内容软件推广是什么工作
  • 网站是否必须做可信网站认证推广营销策划方案
  • 门户网站内容天津百度百科
  • 网站制作 长沙2023年6月疫情情况
  • 兰溪高端网站建设公司google首页
  • 网站建设南宁seo网站运营
  • 网站秒杀怎么做哈尔滨seo
  • php企业网站开发教程b站推广网站2024
  • 网上团建智慧团建登录入口微信搜一搜排名优化
  • 松江区网站建设公司抖音搜索引擎优化