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

招聘网站对比这么做win7 asp网站无法显示该页面

招聘网站对比这么做,win7 asp网站无法显示该页面,网站美工设计基础,网站地图html策略模式:一种行为型模式,这些设计模式特别关注对象之间的通信。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。 介绍 意图:定义一系列的算…

策略模式:一种行为型模式,这些设计模式特别关注对象之间的通信。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。

介绍
  • 意图:定义一系列的算法、策略或行为,把它们封装成一个一个的策略类,
  • 主要解决问题:在有多种相似算法、策略或行为的情况下,使用 if...else 所带来的复杂和难以维护
  • 关键代码:实现同一个接口
  • 优点:1、算法可以自由切换。 2、避免使用多重条件判断。 3、扩展性良好。
  • 缺点:1、策略类会增多。 2、所有策略类都需要对外暴露(这有点违背设计模式六大原则的迪米特法则)。

举个例子:绘制三角形、圆形、矩形图案(Android Kotlin 自定义View)

步骤1:创建一个接口

interface Strategy {fun runCanvas(canvas: Canvas?)
}

步骤2:创建实现接口的实体类。

class Triangle:Strategy {override fun runCanvas(canvas: Canvas?) {// 绘制一个三角形行为// ......}
}
class Circular:Strategy {override fun runCanvas(canvas: Canvas?) {// 绘制一个圆形行为// ......}
}
class Rectangle:Strategy {override fun runCanvas(canvas: Canvas?) {// 绘制一个矩形形行为// ......}
}

步骤3:创建上下文类。

//创建 Context 类。
//class Context(private val strategy: Strategy) {
//    
//    fun executeStrategy(canvas: Canvas?){
//        return strategy.runCanvas(canvas)
//    }
//}class CustomView(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : View(context, attrs, defStyleAttr, defStyleRes) {constructor(context: Context) : this(context, null, 0)constructor(context: Context, attrs: AttributeSet?) : this(context, attrs, 0)constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : this(context, attrs, defStyleAttr,0)private var strategy: Strategy? = nullfun setStrategy(strategy: Strategy?) {this.strategy = strategy}override fun onDraw(canvas: Canvas?) {strategy?.runCanvas(canvas)super.onDraw(canvas)}}

步骤:使用

//        使用 Context 来查看当它改变策略 Strategy 时的行为变化。
//        var context = Context(Triangle())
//        context.executeStrategy(canvas)
//        var context = Context(Circular())
//        context.executeStrategy(canvas)
//        var context = Context(Rectangle())
//        context.executeStrategy(canvas)//      改变策略 StrategycustomView.setStrategy(Triangle())customView.invalidate()//触发执行draw方法customView.setStrategy(Circular())customView.invalidate()customView.setStrategy(Rectangle())customView.invalidate()

http://www.yayakq.cn/news/816884/

相关文章:

  • 南宁老牌网站建设公司网站建设的五类成员
  • 信誉好的医疗网站建设群晖wordpress外网
  • 网站建设支付宝品牌seo主要做什么
  • 电子商务网站功能设计wordpress链接浏览量
  • 邯郸市城乡住房建设局网站网站开发可以用哪些语言
  • 建网站的流程费用网络服务商基本网络参数
  • 教育网站建设解决方案网站备案官网
  • 网站首页标题字数app浏览器源码大全网站
  • 昌吉网站建设电话app大全视频app大全
  • 专门做特产的网站做网站备案时间
  • 5ucms怎样做网站自适应wordpress新版编辑
  • 网站都是h5响应式贵阳网站建设多少钱
  • 广州网站设计网站制作网站开发app开发培训
  • 已备案网站增加域名wordpress 显示作者
  • 永州市建设工程质量安全监督站官方网站wordpress xmlrpc 漏洞
  • 网站建设竞标需要怎么做温州网络网
  • 手机网站建设信息必应搜索
  • 手机网站视频播放模板工商注册需要准备什么材料
  • 何为网站开发看房自己的网站建设多少钱
  • 没备案的网站收录とらぶるだいあり しすた在线
  • 心理咨询网站php后台一般需要哪些模块应用软件有哪些?
  • 建站官网西安网站设计哪家公司好
  • 网站如何做关键词seowordpress 增强编辑器
  • 笔记本做网站服务器移动端ui设计
  • 青岛建手机网站公司.我爱你 域名网站
  • 香河住房和建设局网站wordpress模板学校
  • 虚拟资源站码支付wordpress网站图片尺寸
  • 什么做电子书下载网站如何做网站 写代码
  • 传媒公司网站设计wordpress播放器
  • 秦皇岛网站制作专家教您简单建站最新网游排行榜2023