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

网站中的图片必须用 做吗不能访问子目录的网站

网站中的图片必须用 做吗,不能访问子目录的网站,在网站后台可以修改网页的内容,地方旅游网站开发文章目录 1. 概念1.1 作用1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1. 概念 1.1 作用 状态(State)指状态对象,用于封装上下文对象的特定状态行为,使得上下文对象在内部状态改变时能够改变其自身的行为。 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 类图

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 类图

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.yayakq.cn/news/58686/

相关文章:

  • 惠州市网站开发宜昌网站开发公司
  • 用腾讯云做网站一般公司做网站多少钱
  • 凡科建站手机版登录网站建设项目管理论文
  • 济南网站建设询问企优互联价低免费商品列表网页模板源代码
  • mysql 学习网站怎么做优惠券网站
  • 上海网站建设sheji021合肥专业手机网站制作价格
  • 包头焦点网站建设wordpress文章索引
  • 网站哪里备案有区别么网站建设项目进展情况
  • 连锁加盟网站制作国外做贸易网站
  • 应该如何做营销型网站手机端html编辑器
  • 贵州省住房与城乡建设部网站视频素材库网站免费
  • 北京做商铺的网站网站建设技术实现
  • 网站上线 流程建设通网站是做什么的
  • 建设单位到江川区住房和城乡建设局网站摄影网站建设公司
  • w3c网站代码标准规范湖南搜索引擎推广多少钱
  • 商业地产网站建设做电影网站违法
  • 购物网站建设要求茶叶网络推广方案
  • 洛阳最好的做网站的公司公司官网系统
  • 做电商哪个设计网站比较好做美工比较好的网站
  • 新型建筑模板价格多少网站的seo是什么意思
  • 网站怎么做市场分析关键词排名是什么意思
  • 网站建设 官网站网页建设
  • 北京网站推广外包wordpress友情链接显示个数
  • 天助网的网站广州网站定制开发设计
  • 制作公司网站结构图聊城有制作网站的吗
  • 国企门户网站建设方案滁州做网站hi444
  • 做网站哪个系统最安全为了找工作做的前端网站
  • 仿搜狐视频网站源码瑞安哪里有培训做网站的
  • 网站无法添加图片天元建设集团有限公司三层九中心
  • 网站开发注意资源收费网站怎么做