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

泰安专业网站开发公司h5自适应网站建设是什么意思

泰安专业网站开发公司,h5自适应网站建设是什么意思,成都最近爆发的传染病,开家网站建设培训班策略者模式的特点 在设计类的继承体系时,我们会刻意的把公共的部分都提取到基类中 比如先设计Person类,把人类都具有的行为放到这个Person,特有的行为设计成抽象方法,让子类具体去实现, 这样后续无论我们再去构造学生,还是构造老师,大家都继承Person,就达到了代码复用的目的 但… 策略者模式的特点 在设计类的继承体系时,我们会刻意的把公共的部分都提取到基类中 比如先设计Person类,把人类都具有的行为放到这个Person,特有的行为设计成抽象方法,让子类具体去实现, 这样后续无论我们再去构造学生,还是构造老师,大家都继承Person,就达到了代码复用的目的 但是这样问题就来了,对老师类来说,需要有教学的行为,假如这个方法以抽象方法的形式放在基类,那么对于继承了Person的学生类来说就不对了,因为没有要求学生一定会教学,但是现在学生就得实现这个方法 如果我们把老师的教学的行为作为 老师类的私有, 这时候,小明教小李学习, 就意味着对小明来说,他需要教学的行为, 前前后后看起来就开始矛盾了, 到底怎么处理呢? 策略者模式,就解决了这个问题, 它把行为抽象成了接口,以接口实现的方式,解决上面的问题, 就上面的例子来说,可以把教学设计成接口,任何类,只要实现了这个接口,就可以教学,而不一定强制要求只有老师才可以实现它 总的来说,策略模式,就是将行为抽象成接口实现的模式 Netty中策略者模式的使用 netty的bossgroup中接收到了新的连接之后会使用选择器Chooser,从WorkerGroup中选择出一个EventLoop, 然后把这个连接注册进选出的 EventLoop netty的选择器,使用的就是策略者模式,将选择的行为 设计成接口,不同的选择器根据自己不同的需求用不用的方式实现选择器接口 行为接口 UnstableApi public interface EventExecutorChooserFactory {EventExecutorChooser newChooser(EventExecutor[] executors); UnstableApi interface EventExecutorChooser {EventExecutor next(); } }选择器不同的实现: if (isPowerOfTwo(executors.length)) {// todo 如果是2的指数倍, 返回PowerOfTwoEventExecutorChooserreturn new PowerOfTwoEventExecutorChooser(executors); } else {// todo 否则返回同样的实例return new GenericEventExecutorChooser(executors); } 根据线程执行器的数量确定使用那种具体的行为 行为1:PowerOfTwoEventExecutorChooser private static final class PowerOfTwoEventExecutorChooser implements EventExecutorChooser {private final AtomicInteger idx new AtomicInteger();private final EventExecutor[] executors;PowerOfTwoEventExecutorChooser(EventExecutor[] executors) {this.executors executors;}Overridepublic EventExecutor next() {return executors[idx.getAndIncrement() executors.length - 1];} 主要看它的executors[idx.getAndIncrement() executors.length - 1] 进行速度更快的与运算 1 1 1 1 0 0 0 1 0 当数组的长度是2的幂次方时, 用二进制表示就是1111... 全是1, 再减去1 ,就是0111... 无论前面的数是谁,对一个 0111... 进行与运算,得到的结果就是从0-0111...大小的数, 循环往复 行为2:GenericEventExecutorChooser private final AtomicInteger idx new AtomicInteger(); private final EventExecutor[] executors;GenericEventExecutorChooser(EventExecutor[] executors) {this.executors executors; }Override public EventExecutor next() {// todo 从0开始到最后一个, 再从零开始,到最后一个return executors[Math.abs(idx.getAndIncrement() % executors.length)]; } 主要的一步就是Math.abs(idx.getAndIncrement() % executors.length) 可以看到,从0开始一直往后对数组的长度取余数,小数对大数取余数小数, 保证了数组的下标从0开始递增, 自己对自己取余数0,保证了最大值是 数组的长度减一, 如此往复 转载于:https://www.cnblogs.com/ZhuChangwu/p/11237899.html
http://www.yutouwan.com/news/282867/

相关文章:

  • 网站如何强制修改主页 源码广州智能科技有限公司
  • 学校网站建设意义网站建设如何定价
  • iis网站服务器安全隐患分析网站开发注册个体工商
  • 江西专业网站建设定制细分网站
  • 网站改标题不改版 kwordpress图片主题 瀑布流经典
  • 网站策划素材做网站如何获得阿里巴巴投资
  • 南宁保洁网站建设浙江高端网站建设公司
  • 哪个网站上做ppt比较好公司官网怎么制作
  • 做兼职设计去哪个网站广西模板十大名牌排名榜
  • 网站基础建设巴巴商友圈互联网行业是干什么的
  • 成都网站推广经理标签wordpress
  • 衡水移动网站建设报价网站降权了怎么办
  • 网站开发洲际wordpress百度插件下载
  • 商城网站设计需要哪些技术成全视频免费观看在线看收索
  • 创建网站的工作流程wordpress中文版 显示英文
  • 网站建设框架图提高网站浏览量
  • 宁波网站制作公司官网网站内容如何优化
  • 网站 建设初步无法连接wordpress
  • 雄安新区网站建设昆明市网站推广
  • 网站开发需求文档模板带er图服饰 视频 网站建设
  • 网站如何导流量wordpress前台多张缩略图
  • 做特产网站手机网站建设经典教程
  • 营销网站建设大全注册网站查询系统
  • 模板网站建设哪家专业江苏企业网站建设
  • 做学校和企业对接的网站个人网站备案 网站服务内容
  • 购物网站开发课程设计图片常采用gif或jpeg格式
  • 昆明网站建设 技术支持百度手机助手安卓版
  • 搭建网站要什么显卡建行官网网站
  • 镇江网站seo中国制造网官方网站下载安装
  • 网站改版 打造企业文化大访问量的网站怎么做优化