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

温州网站制作计划遵义信息港

温州网站制作计划,遵义信息港,苏州网站开发公司济南兴田德润厉害吗,低调与华丽wordpress文章目录 1. 概念1.1 作用1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1. 概念 1.1 作用 状态#xff08;State#xff09;指状态对象#xff0c;用于封装上下文对象的特定状态行为#xff0c;使得上下文对象在内部状态改变时能够改变其自身的行为。 1.1 角色… 文章目录 1. 概念1.1 作用1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1. 概念 1.1 作用 状态State指状态对象用于封装上下文对象的特定状态行为使得上下文对象在内部状态改变时能够改变其自身的行为。 1.1 角色 Context环境类角色内部维护一个当前状态实例并负责具体状态的切换。State抽象状态角色 是所有具体状态的抽象接口它的每一个方法代表了环境类的一种操作 ConcreteState具体状态角色 每个ConcreteState都代表了环境类的一个状态它的每一个方法代表了环境类在该状态下的一种行为环境在不同状态下同一行为的操作是不同的 1.2 类图 #mermaid-svg-l1JxVpgRojAHQn6f {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-l1JxVpgRojAHQn6f .error-icon{fill:#552222;}#mermaid-svg-l1JxVpgRojAHQn6f .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-l1JxVpgRojAHQn6f .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-l1JxVpgRojAHQn6f .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-l1JxVpgRojAHQn6f .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-l1JxVpgRojAHQn6f .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-l1JxVpgRojAHQn6f .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-l1JxVpgRojAHQn6f .marker{fill:#333333;stroke:#333333;}#mermaid-svg-l1JxVpgRojAHQn6f .marker.cross{stroke:#333333;}#mermaid-svg-l1JxVpgRojAHQn6f svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-l1JxVpgRojAHQn6f g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-l1JxVpgRojAHQn6f g.classGroup text .title{font-weight:bolder;}#mermaid-svg-l1JxVpgRojAHQn6f .nodeLabel,#mermaid-svg-l1JxVpgRojAHQn6f .edgeLabel{color:#131300;}#mermaid-svg-l1JxVpgRojAHQn6f .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-l1JxVpgRojAHQn6f .label text{fill:#131300;}#mermaid-svg-l1JxVpgRojAHQn6f .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-l1JxVpgRojAHQn6f .classTitle{font-weight:bolder;}#mermaid-svg-l1JxVpgRojAHQn6f .node rect,#mermaid-svg-l1JxVpgRojAHQn6f .node circle,#mermaid-svg-l1JxVpgRojAHQn6f .node ellipse,#mermaid-svg-l1JxVpgRojAHQn6f .node polygon,#mermaid-svg-l1JxVpgRojAHQn6f .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-l1JxVpgRojAHQn6f .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-l1JxVpgRojAHQn6f g.clickable{cursor:pointer;}#mermaid-svg-l1JxVpgRojAHQn6f g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-l1JxVpgRojAHQn6f g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-l1JxVpgRojAHQn6f .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-l1JxVpgRojAHQn6f .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-l1JxVpgRojAHQn6f .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-l1JxVpgRojAHQn6f .dashed-line{stroke-dasharray:3;}#mermaid-svg-l1JxVpgRojAHQn6f #compositionStart,#mermaid-svg-l1JxVpgRojAHQn6f .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-l1JxVpgRojAHQn6f #compositionEnd,#mermaid-svg-l1JxVpgRojAHQn6f .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-l1JxVpgRojAHQn6f #dependencyStart,#mermaid-svg-l1JxVpgRojAHQn6f .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-l1JxVpgRojAHQn6f #dependencyStart,#mermaid-svg-l1JxVpgRojAHQn6f .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-l1JxVpgRojAHQn6f #extensionStart,#mermaid-svg-l1JxVpgRojAHQn6f .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-l1JxVpgRojAHQn6f #extensionEnd,#mermaid-svg-l1JxVpgRojAHQn6f .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-l1JxVpgRojAHQn6f #aggregationStart,#mermaid-svg-l1JxVpgRojAHQn6f .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-l1JxVpgRojAHQn6f #aggregationEnd,#mermaid-svg-l1JxVpgRojAHQn6f .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-l1JxVpgRojAHQn6f .edgeTerminals{font-size:11px;}#mermaid-svg-l1JxVpgRojAHQn6f :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Context -state:State behavior() «interface» State Handle(con:Context) StateA Handle(con:Context) StateB Handle(con:Context) StateC Handle(con:Context) 2. 代码示例 2.1 设计 需求 环境有关闭、受限、正常三个状态环境有查看、评论、发布三种状态其对应关系如下 查看评论发布正常√√√受限√√×关闭××× 定义环境类Context 它依赖了抽象状态如果状态没有冲突你也可以写成状态的聚合它有一个成员是健康值它的一个内部方法用来修改状态虽然golang没有java对类的权限控制我们只能这么理解尽量不在“类之外调用”它的一个外部方法传入健康值同时修改环境状态 定义一个函数创建环境类这不是状态模式的重点仅为了方便实例化定义抽象状态State定义一个具体状态关闭模拟一个网站的用户状态 它的View()方法模式关闭状态用户不能查看它的Comment()方法模拟关闭状态用户不能评论它的Post()方法模拟关闭状态用户不能发布 定义一个具体状态限制模拟一个网站的用户状态 它的View()方法模式限制状态用户可以查看它的Comment()方法模拟限制状态用户可以评论它的Post()方法模拟限制状态用户不能发布 定义一个具体状态正常模拟一个网站的用户状态 它的View()方法模式正常状态用户可以查看它的Comment()方法模拟正常状态用户可以评论它的Post()方法模拟正常状态用户可以发布 调用 实例化一个环境类执行查看操作修改环境类健康值再次执行查看操作 2.2 代码 代码 package mainimport (fmt )// 定义环境类 type Context struct {state StateHealthValue int }// 根据环境类健康值修改环境状态 func (c *Context) changeState() {if c.HealthValue -10 {c.state Close{}} else if c.HealthValue -10 c.HealthValue 0 {c.state Restriction{}} else if c.HealthValue 0 {c.state Normal{}} }// 设置环境类健康值 func (c *Context) SetHealth(value int) {c.HealthValue valuec.changeState() }// 创建环境类 func CreateContext(health int) *Context {a : Context{HealthValue: health,}a.changeState()return a }// 定义抽象状态类 type State interface {View()Comment()Post() }// 定义第一个具体状态 type Close struct{}func (c *Close) View() {fmt.Println(无法查看) }func (c *Close) Comment() {fmt.Println(不能评论) }func (c *Close) Post() {fmt.Println(不能发布) }// 定义第二个具体状态 type Restriction struct{}func (r *Restriction) View() {fmt.Println(查看正常) }func (r *Restriction) Comment() {fmt.Println(评论正常) }func (r *Restriction) Post() {fmt.Println(不能发布) }// 定义第三个具体状态 type Normal struct{}func (n *Normal) View() {fmt.Println(查看正常) }func (n *Normal) Comment() {fmt.Println(评论正常) }func (n *Normal) Post() {fmt.Println(发布正常) }func main() {context : CreateContext(75)context.state.View()fmt.Println(改变健康值)context.SetHealth(-20)context.state.View() }输出 查看正常 改变健康值 无法查看2.3 类图 #mermaid-svg-T72ZPR4OH2moPcja {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-T72ZPR4OH2moPcja .error-icon{fill:#552222;}#mermaid-svg-T72ZPR4OH2moPcja .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-T72ZPR4OH2moPcja .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-T72ZPR4OH2moPcja .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-T72ZPR4OH2moPcja .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-T72ZPR4OH2moPcja .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-T72ZPR4OH2moPcja .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-T72ZPR4OH2moPcja .marker{fill:#333333;stroke:#333333;}#mermaid-svg-T72ZPR4OH2moPcja .marker.cross{stroke:#333333;}#mermaid-svg-T72ZPR4OH2moPcja svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-T72ZPR4OH2moPcja g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-T72ZPR4OH2moPcja g.classGroup text .title{font-weight:bolder;}#mermaid-svg-T72ZPR4OH2moPcja .nodeLabel,#mermaid-svg-T72ZPR4OH2moPcja .edgeLabel{color:#131300;}#mermaid-svg-T72ZPR4OH2moPcja .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-T72ZPR4OH2moPcja .label text{fill:#131300;}#mermaid-svg-T72ZPR4OH2moPcja .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-T72ZPR4OH2moPcja .classTitle{font-weight:bolder;}#mermaid-svg-T72ZPR4OH2moPcja .node rect,#mermaid-svg-T72ZPR4OH2moPcja .node circle,#mermaid-svg-T72ZPR4OH2moPcja .node ellipse,#mermaid-svg-T72ZPR4OH2moPcja .node polygon,#mermaid-svg-T72ZPR4OH2moPcja .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-T72ZPR4OH2moPcja .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-T72ZPR4OH2moPcja g.clickable{cursor:pointer;}#mermaid-svg-T72ZPR4OH2moPcja g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-T72ZPR4OH2moPcja g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-T72ZPR4OH2moPcja .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-T72ZPR4OH2moPcja .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-T72ZPR4OH2moPcja .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-T72ZPR4OH2moPcja .dashed-line{stroke-dasharray:3;}#mermaid-svg-T72ZPR4OH2moPcja #compositionStart,#mermaid-svg-T72ZPR4OH2moPcja .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-T72ZPR4OH2moPcja #compositionEnd,#mermaid-svg-T72ZPR4OH2moPcja .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-T72ZPR4OH2moPcja #dependencyStart,#mermaid-svg-T72ZPR4OH2moPcja .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-T72ZPR4OH2moPcja #dependencyStart,#mermaid-svg-T72ZPR4OH2moPcja .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-T72ZPR4OH2moPcja #extensionStart,#mermaid-svg-T72ZPR4OH2moPcja .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-T72ZPR4OH2moPcja #extensionEnd,#mermaid-svg-T72ZPR4OH2moPcja .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-T72ZPR4OH2moPcja #aggregationStart,#mermaid-svg-T72ZPR4OH2moPcja .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-T72ZPR4OH2moPcja #aggregationEnd,#mermaid-svg-T72ZPR4OH2moPcja .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-T72ZPR4OH2moPcja .edgeTerminals{font-size:11px;}#mermaid-svg-T72ZPR4OH2moPcja :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Context -state State Int HealthValue SetHealth(value int) -changeState() «interface» State View() Comment() Post() Close View() Comment() Post() Restriction View() Comment() Post() Normal View() Comment() Post()
http://www.hkea.cn/news/14399919/

相关文章:

  • 百度快照怎么优化排名天津网站排名优化
  • 网站建设西班牙语正规网络推广平台
  • 公司网站建设费入哪个科目全国高校校园网站建设与发展高级研修班
  • 唐山建设网站公司注册无地址注册公司
  • 怎样做1个网站wordpress 编辑首页
  • 公司网站修改 优帮云家装设计学校
  • 微信视频网站怎么做的好处盘龙区网络推广
  • 专门做化妆的招聘网站免费下载ppt模板的网站有哪些
  • 点胶机 东莞网站建设c2c模式的诞生与发展
  • 怎么查网站服务器深圳做微信网站多少钱
  • 呼市网站建设手机排行榜中关村
  • 无锡朝阳网站推广梦幻西游网页版平民攻略
  • 有云服务器和域名怎么做网站asp网站知道用户名是admin
  • 给别人做网站用什么建站公司现状
  • 衡水做网站的公司免费发广告的软件
  • 中小企业微信网站建设慧聪网郭凡生
  • 商务网站建设的调研做电商网站哪里好
  • 济南网站建设套餐第三方小程序商店
  • 网站建设秋实wordpress图片 转移oss
  • 广州外贸网站建设推广企业宣传视频制作公司
  • 58同城做网站找谁wordpress 文字 居中
  • 四川专门做招聘酒的网站衡水做外贸网站
  • 网站百度不收录了西安企业网站设计哪家专业
  • 企业网站关键词优化排名应该怎么做有没有免费的推广网站
  • 做糕点的网站东源县住房和城乡建设部网站
  • 免费的行情软件app网站宣传片拍摄计划方案
  • 申请中网可信网站中国有多少网站有多少域名
  • 商城网站源码免费宁波网站开发制作
  • 如何把网站做成软件安庆网站建设推荐秒搜科技
  • ip提取网站源码带后台织梦软件展示网站