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

动态网站建设包括哪些方面seo优化服务公司

动态网站建设包括哪些方面,seo优化服务公司,wordpress有无缩略图,成人高考和自考的区别策略模式:一种行为型模式,这些设计模式特别关注对象之间的通信。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 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.dtcms.com/wzjs/470982.html

相关文章:

  • 建站房的公司百度seo快速排名优化
  • 小程序招商加盟seo网络培训机构
  • 快速网站郑州网站开发顾问
  • 协和医院网站建设目标seo业务培训
  • 一流的永州网站建设阿里云注册域名
  • 现在企业做网站一般用什么框架上海最近三天的新闻
  • 建好网站后最怎么维护临沂森工木业有限公司
  • 一键网站模块简单的网站制作
  • 网站开发模板用什么一个完整的产品运营方案
  • 网站设计有限公司制作网页的流程
  • 网站名称重要吗品牌宣传推广方案
  • 通过网站做外贸重庆seo报价
  • 网站支付平台是怎么做的seo就业
  • 广州骏域网站建设专家网站群发软件
  • 网站导入题库怎么做的网站优化软件费用
  • 如何建立商城网站企业网站建设价格
  • 怎么样给一个网站做自然排名网站的宣传推广方式
  • 网站建设管理视频seo技术介绍
  • 建设部监理工程师考试网站本周热点新闻事件
  • 易思网站管理系统怎么推广公众号让人关注
  • 网站制作杭州淘宝关键词搜索排行榜
  • 官网排名优化seo营销技巧
  • 网站备案多久通过nba西部排名
  • 南通网站建设报价网页设计制作网站html代码大全
  • 二级域名可以做网站百度推广账户登录首页
  • 大良商城网站建设最近热搜新闻事件
  • 枣强做百度网站深圳网络推广网站推广
  • 做网站为什么需要花钱常用的网站推广方法
  • 东营seo网站建设费用优秀网站设计赏析
  • 做网站的费用 优帮云成都网站推广经理