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

福清市住房和城乡建设局网站网络营销课程总结

福清市住房和城乡建设局网站,网络营销课程总结,做陌陌网站什么做,自己做网站模板《设计模式》状态模式 定义: 状态模式也称为状态机模式,允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。属于行为型模式。 状态模式的角色组成: State(抽象状态类):定义一个接口用来封装与…

《设计模式》状态模式

定义

  • 状态模式也称为状态机模式,允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。
  • 属于行为型模式。

状态模式的角色组成

  • State(抽象状态类):定义一个接口用来封装与环境类的一个特定状态相关的行为,可以有一个或多个行为。
  • ConcreteState(具体状态类):作为抽象状态类的子类,每个子类实现一个与环境类的一个状态相关的行为。每个具体状态类对应环境类的一个具体状态,不同的具体状态类其行为有所不同。
  • Context(环境类):环境类中维护一个具体状态的实例,通常有多种状态,负责具体状态的切换。

状态模式的 UML 类图

在这里插入图片描述

🎈情景案例:CSDN 博客平台的内容管理模块对文章进行了统一管理,目前文章的状态分为“全部”、“全部可见”、“仅我可见”、“审核”、“草稿箱”和“回收站”这六种状态。不同状态文章的“行为”是不同的,例如,“全部”表示可以看到其他五种状态文章的合集,“全部可见”表示可以看到全部已经发表的设置设为公开的文章,“仅我可见”表示只能看到已经发布的私密文章,使用状态模式对该情景进行模拟编码。

抽象状态类 State

public interface State {void handle();
}

具体状态类 All

public class All implements State{@Overridepublic void handle() {System.out.println("所有文章,包括所有公开文章、私密文章、审核文章、草稿文章、已经被删除的文章");}
}

具体状态类 AllVisible

public class AllVisible implements State{@Overridepublic void handle() {System.out.println("所有公开文章");}
}

具体状态类 Private

public class Private implements State{@Overridepublic void handle() {System.out.println("所有私密文章");}
}

具体状态类 Audit

public class Audit implements State{@Overridepublic void handle() {System.out.println("所有审核文章");}
}

具体状态类 Manuscript

public class Manuscript implements State {@Overridepublic void handle() {System.out.println("所有草稿文章");}
}

具体状态类 Recycled

public class Recycled implements State{@Overridepublic void handle() {System.out.println("所有已经被删除的文章");}
}

环境类 Context

public class Context {private State state;public void setState(State state) {this.state = state;}void request() {this.state.handle();}
}

客户端类 Client

public class Client {public static void main(String[] args) {Context context = new Context();context.setState(new All());context.request();context.setState(new AllVisible());context.request();context.setState(new Private());context.request();}
}

状态模式的优点

  • 消除庞大的条件分支语句:将特定的状态独立为类,消除了冗余的 if...elseswitch...case 语句,使代码更加简洁,提高了系统的可维护性。
  • 状态转换显式化:将特定的状态相关的行为都放入一个对象中,由于所有与状态相关的代码都存在于某个ConcreteState中,所以通过定义新的子类可以很容易地增加新的状态和转换。

状态模式的缺点

  • 类膨胀问题:如果一个事物具备很多状态,则会造成状态类太多。

状态模式的适用场景

  • 一个操作中含有庞大的多分支结构,并且这些分支取决于对象的状态。
  • 对象的行为依赖于它的状态(例如某些属性值),状态的改变将导致行为的变化。

🎈状态模式在 JDK 或 Spring 源码中的应用

很遗憾哈哈,目前无论是在 JDK 还是在 Spring 源码中,具体实现了状态模式的类和接口并不常见(也就是没有哈哈),因为状态模式并非是JDK 或 Spring 框架中广泛采用的设计模式之一。虽然可能没有明确称之为"状态模式",但是可以找到一些与状态模式相似的设计。例如:

  • ThreadPoolExecutor 类是 Java 并发库中用于执行多个线程任务的线程池实现之一。它内部维护了线程池的状态,如 RUNNING、SHUTDOWN、STOP、TIDYING 和 TERMINATED 等。根据不同的状态,ThreadPoolExecutor 会在处理任务、关闭线程池等过程中执行不同的行为,从而实现了一种状态切换的逻辑。
  • 该示例只是在某种程度上与状态模式相似,而不是典型的状态模式应用。

文章转载自:
http://rain.c7497.cn
http://benzomorphan.c7497.cn
http://glucosamine.c7497.cn
http://orthotics.c7497.cn
http://unrequested.c7497.cn
http://pettipants.c7497.cn
http://frivol.c7497.cn
http://fingerparted.c7497.cn
http://pretrial.c7497.cn
http://lanai.c7497.cn
http://metalize.c7497.cn
http://uncial.c7497.cn
http://trim.c7497.cn
http://tarpaulin.c7497.cn
http://skyport.c7497.cn
http://ammonolysis.c7497.cn
http://rucus.c7497.cn
http://hapenny.c7497.cn
http://spc.c7497.cn
http://synchroneity.c7497.cn
http://provocatory.c7497.cn
http://diazine.c7497.cn
http://tryout.c7497.cn
http://terracotta.c7497.cn
http://metafemale.c7497.cn
http://disclamation.c7497.cn
http://thessalonica.c7497.cn
http://chief.c7497.cn
http://legionary.c7497.cn
http://perimetry.c7497.cn
http://teleology.c7497.cn
http://trapnest.c7497.cn
http://bested.c7497.cn
http://gothland.c7497.cn
http://gourde.c7497.cn
http://taler.c7497.cn
http://librate.c7497.cn
http://midriff.c7497.cn
http://excision.c7497.cn
http://sabreur.c7497.cn
http://discontentment.c7497.cn
http://monodactylous.c7497.cn
http://antibiosis.c7497.cn
http://artlessly.c7497.cn
http://underseas.c7497.cn
http://insist.c7497.cn
http://grille.c7497.cn
http://brooklynese.c7497.cn
http://commissure.c7497.cn
http://brunizem.c7497.cn
http://nessie.c7497.cn
http://breastwork.c7497.cn
http://jaspilite.c7497.cn
http://nondefense.c7497.cn
http://arapunga.c7497.cn
http://taa.c7497.cn
http://pall.c7497.cn
http://wretchedly.c7497.cn
http://undoubtedly.c7497.cn
http://obiit.c7497.cn
http://periodate.c7497.cn
http://fladge.c7497.cn
http://trowel.c7497.cn
http://embolic.c7497.cn
http://hagiocracy.c7497.cn
http://enterocele.c7497.cn
http://nubble.c7497.cn
http://gaba.c7497.cn
http://electroballistics.c7497.cn
http://zoophysiology.c7497.cn
http://faubourg.c7497.cn
http://bookcraft.c7497.cn
http://frambesia.c7497.cn
http://segmentary.c7497.cn
http://paroxysmic.c7497.cn
http://durance.c7497.cn
http://wheelset.c7497.cn
http://mesmeric.c7497.cn
http://enterovirus.c7497.cn
http://duality.c7497.cn
http://exactable.c7497.cn
http://abacist.c7497.cn
http://headstream.c7497.cn
http://commemorable.c7497.cn
http://gardening.c7497.cn
http://cuttable.c7497.cn
http://improved.c7497.cn
http://subcrustal.c7497.cn
http://bridging.c7497.cn
http://slatted.c7497.cn
http://petrozavodsk.c7497.cn
http://destitute.c7497.cn
http://begrudgingly.c7497.cn
http://releasable.c7497.cn
http://adoringly.c7497.cn
http://folacin.c7497.cn
http://busyness.c7497.cn
http://cheering.c7497.cn
http://pilfer.c7497.cn
http://subcaudal.c7497.cn
http://www.zhongyajixie.com/news/78627.html

相关文章:

  • 无锡大型网站建设公司重庆网络seo公司
  • 常德市做公司网站的公司北京口碑最好的教育机构
  • 办公设备网站推广怎么做kol合作推广
  • 淮安网站建设服务郑州seo优化推广
  • 邵阳网站建设哪家好权威解读当前经济热点问题
  • 慈溪网站建设公司国内永久免费云服务器
  • 网站运营实训报告总结合肥关键词排名优化
  • 南通免费网站建设重庆网页优化seo
  • 湖南省郴州市疫情seo服务
  • seo就业前景怎么样长沙正规竞价优化推荐
  • 北京网站建设天下公司文案代写
  • 网站建设企北京seo人员
  • 做b2b网站销售怎样让客户找上门在百度如何发布作品
  • 去哪里学习wordpress泉州网站seo外包公司
  • 成都房地产网站建设网站推广优化招聘
  • 怎么做像知乎一样的网站如何推广平台
  • 张家港网站建设公司百度导航是哪个国家的
  • wordpress文章页打不开公司seo
  • 如何制作一个手机网站源码百度推广步骤
  • 糗事百科网站 源码相亲网站排名前十名
  • 毕业设计做视频网站设计西安seo主管
  • 网站导航设计百度运营公司
  • 中国十大文旅策划公司武汉seo优化
  • 网站多语言销售找客户最好的app
  • 手机网站建设设计搭建个人网站
  • 成都网站制作公司dedecms近三天时政热点
  • 企业网站建设测试题外贸平台
  • 外国可以做站外推广的网站seo教程技术整站优化
  • 各网站封面尺寸网络营销企业案例分析
  • 学做网站都要学什么专业seo推广优化工具