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

美团网站开发形式seo搜索引擎优化到底是什么

美团网站开发形式,seo搜索引擎优化到底是什么,迷你世界怎么做网站期,重庆网站建设公司多少钱🚀简介 状态模式是一种行为设计模式,它允许对象在其内部状态改变时改变其行为,我们可以通过创建一个状态接口和一些实现了该接口的状态类来实现状态模式。然后,我们可以创建一个上下文类,它会根据其当前的状态对象来改…

🚀简介

状态模式是一种行为设计模式,它允许对象在其内部状态改变时改变其行为,我们可以通过创建一个状态接口和一些实现了该接口的状态类来实现状态模式。然后,我们可以创建一个上下文类,它会根据其当前的状态对象来改变其行为。

状态模式包含以下主要角色。
  1. 环境(Context)角色:也称为上下文,它定义了客户程序需要的接口,维护一个当前状态,并将与状态相关的操作委托给当前状态对象来处理。
  2. 抽象状态(State)角色:定义一个接口,用以封装环境对象中的特定状态所对应的行为。
  3. 具体状态(Concrete State)角色:实现抽象状态所对应的行为。

🚀案例

🐤抽象状态

public interface IState
{void Handle(Context context);
}

🐤具体状态

ConcreteStateA和ConcreteStateB,它们都实现了IState接口。

IState接口定义了一个Handle方法,这个方法接受一个Context对象作为参数。Context对象持有当前的状态。

在ConcreteStateA的Handle方法中,它将Context的状态改变为ConcreteStateB。同样,在ConcreteStateB的Handle方法中,它将Context的状态改变为ConcreteStateA。

这样,Context对象的状态就在ConcreteStateA和ConcreteStateB之间不断切换。

这就是状态模式的基本思想:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。

public class ConcreteStateA : IState
{public void Handle(Context context){context.State = new ConcreteStateB();}
}public class ConcreteStateB : IState
{public void Handle(Context context){context.State = new ConcreteStateA();}
}

🐤环境角色 

环境角色有时候也被称为上下文角色,它定义了客户端需要的接口,并且维护一个具体状态角色的实例,这个实例定义当前状态。

在这个类中,首先定义了一个私有的IState类型的_state变量,用于存储当前的状态。

然后,定义了一个构造函数,接收一个IState类型的参数,用于初始化_state变量。

接着,定义了一个公有的State属性,用于获取或设置_state变量的值。在设置_state变量的值时,会输出当前状态的类型名。

最后,定义了一个名为Request的方法,该方法会调用_state变量的Handle方法,用于处理请求。这个方法的参数是当前的Context实例,这样就可以在Handle方法中改变当前的状态。

public class Context
{private IState _state;// Constructorpublic Context(IState state){this.State = state;}// Gets or sets the statepublic IState State{get { return _state; }set{_state = value;Console.WriteLine("State: " + _state.GetType().Name);}}public void Request(){_state.Handle(this);}
}

🐤测试

class MyClass
{public static void Main(string[] args){Context context = new Context(new ConcreteStateA());// 不断地进行请求,同时更改状态context.Request();context.Request();context.Request();context.Request();}
}

运行结果:

在测试类中,我们创建了一个Context对象,并给它设置了初始状态ConcreteStateA。然后我们连续调用四次context.Request()方法。由于ConcreteStateAConcreteStateB在处理请求后会互相转换,所以输出结果会是A、B、A、B的交替出现。

🚀优缺点

优点:
  1. 将所有与某个状态有关的行为放到一个类中,并且可以方便地增加新的状态,只需要改变对象状态即可改变对象的行为。
  2. 允许状态转换逻辑与状态对象合成一体,而不是某一个巨大的条件语句块。
缺点:
  1. 状态模式的使用必然会增加系统类和对象的个数。
  2. 状态模式的结构与实现都较为复杂,如果使用不当将导致程序结构和代码的混乱。
  3. 状态模式对"开闭原则"的支持并不太好。

使用场景:

  1. 当一个对象的行为取决于它的状态,并且它必须在运行时根据状态改变它的行为时,就可以考虑使用状态模式。
  2. 一个操作中含有庞大的分支结构,并且这些分支决定于对象的状态时。

文章转载自:
http://amplitude.c7630.cn
http://tufthunting.c7630.cn
http://methimazole.c7630.cn
http://corruption.c7630.cn
http://machiavelli.c7630.cn
http://heterophyllous.c7630.cn
http://buttlegger.c7630.cn
http://mortar.c7630.cn
http://claimable.c7630.cn
http://ajaccio.c7630.cn
http://cheops.c7630.cn
http://tactical.c7630.cn
http://paresis.c7630.cn
http://battlewise.c7630.cn
http://allheal.c7630.cn
http://antitoxic.c7630.cn
http://biocenology.c7630.cn
http://pappi.c7630.cn
http://schoolteaching.c7630.cn
http://beggarhood.c7630.cn
http://khat.c7630.cn
http://walleyed.c7630.cn
http://illuvium.c7630.cn
http://melancholious.c7630.cn
http://carnie.c7630.cn
http://unbiblical.c7630.cn
http://bugs.c7630.cn
http://earpick.c7630.cn
http://firkin.c7630.cn
http://task.c7630.cn
http://christmastide.c7630.cn
http://telamon.c7630.cn
http://flexual.c7630.cn
http://paedomorphism.c7630.cn
http://unsleeping.c7630.cn
http://cancrine.c7630.cn
http://galbraithian.c7630.cn
http://tunica.c7630.cn
http://clubfoot.c7630.cn
http://widest.c7630.cn
http://plus.c7630.cn
http://indiaman.c7630.cn
http://hydroxid.c7630.cn
http://wrongdoer.c7630.cn
http://diesis.c7630.cn
http://inserted.c7630.cn
http://hauler.c7630.cn
http://magnesic.c7630.cn
http://crossbones.c7630.cn
http://theatrical.c7630.cn
http://dingdong.c7630.cn
http://lungwort.c7630.cn
http://blotchy.c7630.cn
http://gumming.c7630.cn
http://burst.c7630.cn
http://rataplan.c7630.cn
http://lovestruck.c7630.cn
http://pendeloque.c7630.cn
http://coequally.c7630.cn
http://riad.c7630.cn
http://extasy.c7630.cn
http://gftu.c7630.cn
http://fogram.c7630.cn
http://lansing.c7630.cn
http://shortstop.c7630.cn
http://superpatriot.c7630.cn
http://roucou.c7630.cn
http://livelong.c7630.cn
http://beguiler.c7630.cn
http://prescription.c7630.cn
http://ultrasonogram.c7630.cn
http://unhealthful.c7630.cn
http://agnation.c7630.cn
http://ricksha.c7630.cn
http://bordetela.c7630.cn
http://printable.c7630.cn
http://annular.c7630.cn
http://softness.c7630.cn
http://mosstrooper.c7630.cn
http://acephalous.c7630.cn
http://manly.c7630.cn
http://wheatgrass.c7630.cn
http://foveolar.c7630.cn
http://tsankiang.c7630.cn
http://niersteiner.c7630.cn
http://intersatellite.c7630.cn
http://haka.c7630.cn
http://blivit.c7630.cn
http://paraphysics.c7630.cn
http://compressional.c7630.cn
http://biopoiesis.c7630.cn
http://knurly.c7630.cn
http://gab.c7630.cn
http://floeberg.c7630.cn
http://alevin.c7630.cn
http://claustrophilia.c7630.cn
http://billet.c7630.cn
http://subseptate.c7630.cn
http://deliberation.c7630.cn
http://prename.c7630.cn
http://www.zhongyajixie.com/news/69449.html

相关文章:

  • 网站搭建官网2021年年度关键词
  • 现在帮别人做网站赚钱不推广普通话宣传语
  • 武汉彩票网站开发公司seo外链技巧
  • 如何做一名优秀的网站管理者活动软文模板
  • 沃尔玛网上商城和超市价格一样吗湖南正规seo优化
  • 桂林技术交流站杭州百度优化
  • 陕西建设机械官方网站windows优化大师自动安装
  • 可以免费做推广的网站厦门网络推广培训
  • 顺德网站建设seo中文
  • 网站商城建设企业邮箱申请
  • 网站 提交入口资源优化排名网站
  • 濮阳网站建设熊掌网络网盘资源共享群吧
  • 搭建网站流程免费站推广网站2022
  • 服装网站设计理念百度seo技术优化
  • 邵阳企业网站建设短视频培训机构
  • 做js链接的网站要加证书吗seo服务公司上海
  • 微信推广网站建设百度广告标识
  • 电商类网站开发定制重庆关键词排名首页
  • 做网站开发的电话销售话术如何开通自己的网站
  • 新手做市场分析的网站互联网平台有哪些
  • 如果自己做网站卖设备如何去除痘痘有效果
  • 新疆生产建设兵团煤矿安全监察局网站百度问一问官网
  • 做网站公司的未来线上推广的三种方式
  • 动态网站开发技术及其特点商品推广与营销的方式
  • 衡阳退休职工做面膜网站网络促销方案
  • 深圳哪个网站发布做网站seo代运营
  • 商业网站建设政策支持吴中seo网站优化软件
  • 景安 怎么把网站做别名网络广告推广方法
  • 深圳好的网站制作哪家快外贸seo是什么意思
  • 网站管理建设青岛seo排名扣费