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

设计网站登录框ps怎么做wordpress挣钱

设计网站登录框ps怎么做,wordpress挣钱,仿站工具教程,wordpress 可视化排版🚀简介 状态模式是一种行为设计模式,它允许对象在其内部状态改变时改变其行为,我们可以通过创建一个状态接口和一些实现了该接口的状态类来实现状态模式。然后,我们可以创建一个上下文类,它会根据其当前的状态对象来改…

🚀简介

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

状态模式包含以下主要角色。
  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://www.yayakq.cn/news/169886/

相关文章:

  • 广州网站设计总部如何用flashfxp通过ftp访问网站服务器下载网站代码
  • 网页制作做网站左侧导航广州市品牌网站建设平台
  • 建筑工地招工网网站如何优化流程
  • 自己做网站都要什么手续网络广告的收费模式有
  • 泰安哪里有做网站app的个人摄影网站模版
  • 国内最专业的设计网站建设网络程序设计实验报告
  • 有没有免费的网站软件做网站是不是很简单
  • 铁岭房地产网站建设网站建设实训过程报告
  • 网站建设师个人简介怎么写同城类网站建设多少钱
  • 购物网站的后台做哪些东西网站与数据库
  • 网站建设竞争对数分析武威网站建设
  • 东莞网站优化费用电子商务网站开发的意义
  • 网站建设平台分析手机百度seo怎么优化
  • 网站做多宽做足球预测的网站
  • 网站建设销售销售流程图网站安排
  • 网站做排名有用吗昆明专业网站排名推广
  • 网站 项目 需求固镇建设局网站
  • wordpress建站有广告吗新增域名网站建设方案
  • 网站的建设会计入哪个科目青海高等级公路建设管理局网站
  • 网站开发者工具的网络选项做网站多久才会有收益
  • 住房城乡建设部网站职业资格网站建设很简单
  • 做一个网站推广wordpress js效果
  • 做化验的网站新浪门户网站是谁做的
  • 平面设计网站模板上海某家具网站建设方案
  • 贵阳建设网站类似pinterest的网站
  • 海兴网站建设价格建筑工程网络计划的关键工作有哪些
  • php 向网站发送数据营销网站有多种类型
  • 国外知名平面设计网站跨境电商平台网站建设广州
  • 网站刷新代码seo去哪里培训
  • 怎么管理网站大连开发区