MAS

设计模式-建造者模式JAVA实现

ε祈祈猫儿з 提交于 2020-04-06 03:46:54
建造者模式就是 接口规定了要完成的动作(也就是方法),然后有各个实现类针对这些方法分别进行各自具体的实现。 个人理解其与模板模式最主要的区别就是模板模式会有一个以final定义的方法来规定其必须要完成的动作流程,这个流程不允许被其子类所修改。而建造者模式没有这个约束,只要实现接口规定的方法建即可。 也就是说模板模式隐含一个流程性,而建造者模式没有固定的流程性 下边还是仓库拣货为例简单说明建造者模式 仓库拣货时一般是多张出库单同时拣货,那么一般会根据客户的情况有至少两种拣货任务与拣货列表的生成方式。 一个是合并拣货。所有客户(X,Y,Z)要拣的A品一共3箱4盒,那就可能生成两个拣货列表(一个3箱,一个4盒)和一个拣货任务(a人员去同时拣这两个列表指定的SKU) 另一个是分别拣货,所有客户(X,Y,Z)对要拣的A品可能生成了4个拣货列表(X客户1箱,Y客户1箱,Z客户1箱,Z还有4盒)和2个拣货任务(a人员在整货区拣所有的整箱,b人员在散货区拣散盒) 那么在实际生成时就可以先定义一个统一的接口 package builder; import java.util.List; import bean.PickDoc; import bean.PickList; import bean.PickTask; /** 定义要完成的动作 @author mas */ public

自动驾驶汽车过时了?无人船将穿越大西洋

北战南征 提交于 2020-03-23 19:56:28
3 月,跳不动了?>>> 自动驾驶汽车的新闻可能已经让你感觉有些审美疲劳,但过去几年中悄然快速发展的其他无人驾驶运输方式绝对能让你感到兴奋。除了IT经理网之前报道过的 空中出租车 和无限接近生产环境的谷歌无人机( 无人机送货走进现实:谷歌Wing已遥遥领先 )外,无人船的发展也即将迎来里程碑时刻。 近日IBM和Promare(一家总部位于英国的海洋研究与探索慈善机构)计划在今年9月6日让一艘无人驾驶船沿着400年前五月花号的航行线路穿越大西洋,该船也是IBM测试人工智能(AI)海上导航系统的原型。 最初的五月花号船于1620年搭载第一批英国定居者前往美国,从英国的普利茅斯出发,航行到今天被称为马萨诸塞州普利茅斯的地方。与当时的许多商船一样,五月花号1.0版是方形帆船,完全依靠风和人类导航技术来寻找通往新世界的途径。另一方面,五月花无人船(MAS)将由太阳能和风力发电联合驱动,船上配有柴油发电机作为后备动力。 五月花号无人船的航行线路 历史上的五月花以最高约2.5节的速度航行,花了两个月的时间才能到达目的地,最新的无人驾驶船速度高达20节,能在不到两周的时间内到达目的地。 该实验任务于去年10月份首次 宣布 ,旨在解决人工智能无人船在险恶的水域航行中遇到的所有常见障碍。 来源: oschina 链接: https://my.oschina.net/u/4303989/blog

java面向对象2(4)this和super调用成员变量+成员方法

假装没事ソ 提交于 2020-02-26 15:39:10
​​​​​一. this和super关键字【阶段重点】 ​​​​​1. 引言&概述 this : 当前对象 super : 当前父对象 两个关键字中保存的都是对象的 地址值 。 2. this入门案例 this : 当前对象 (this某个方法头上找) 3. super入门案例 super:当前父对象 小结: 如果没有加关键字,默认补上this关键字 this : 当前对象 (方法头上找地址) super:当前父对象(方法头上地址的 父亲) 如果没有加入this或 super 关键字,默认补 this 关键字 二. this和super详解【重点】 1. 调用成员方法 调用 当前对象 中的成员方法: this.方法名 ( 参数 ) ; 调用 父对象 中的成员方法: super.方法名 ( 参数 ) ; 若调用方法时未加 this 或者 super 关键字 , 执行时 , Java 会自动在方法名前补齐 this. 注意: 程序使用 this 调用方法的步骤 : 1 、程序 会首先判明 this 表示 哪个对象 ; 2、再去对象中寻找并执行方法 3、找不到就找父类(父类都找不到,就找父类的父类,如果整个继承树都找不到,就报错) 强化练习: this : 当前对象, 方法调用过程中,不会变 supe r: 当前父对象。 如果某个方法调用时,没有加this或 super ,默认补

CoreText进阶(六)-内容大小计算和自动布局

回眸只為那壹抹淺笑 提交于 2019-12-10 15:39:36
本文讲的是如何计算CoreText绘制的内容在指定宽度的场景下内容的大小,客户端可以通过公有的接口在图层渲染之前或得到内容的尺寸进行预先的布局。此外,现在自动布局的应用场景越来越多了,使用CoreText绘图的View如何与自动布局进行兼容也是本文会涉及到的话题 其它文章: CoreText 入门(一)-文本绘制 CoreText入门(二)-绘制图片 CoreText进阶(三)-事件处理 CoreText进阶(四)-文字行数限制和显示更多 CoreText进阶(五)- 文字排版样式和效果 CoreText进阶(六)-内容大小计算和自动布局 CoreText进阶(七)-添加自定义View和对其 效果 Demo: CoreTextDemo 下面的图片展示了使用三种方式布局的效果 手动布局手动计算高度 自动布局自动计算高度 自动布局中限制了内容高度 实现效果的代码: { CGRect frame = CGRectMake(0, 20, self.view.bounds.size.width, 100); YTDrawView *textDrawView = [[YTDrawView alloc] initWithFrame:frame]; textDrawView.backgroundColor = [UIColor whiteColor]; textDrawView.text = @

《小印记》iOS源码分享--自定义弹框篇

不想你离开。 提交于 2019-11-29 05:25:39
笔者前不久终于发布了自己的APP《小印记》,在此分享一些iOS源码,如果读者学到了有用的东西,希望能前往App Store下载《小印记》支持一下笔者,谢谢! 《小印记》iOS源码分享--极光推送实践篇 《小印记》iOS源码分享--HTTPS配置篇 《小印记》源码分享--极光推送服务器篇 《小印记》iOS源码分享--网络层封装篇 首先看一下效果: 附上源码:(布局使用的是Masonry框架) JKBaseAlertView.h #import <UIKit/UIKit.h> typedef NS_ENUM(NSInteger, AlertViewMode) { OkCancelMode = 0, // 带确定和取消按钮 OnlyOkMode // 仅带确定按钮 }; typedef void(^ClickBlock)(NSMutableDictionary * dic); @interface JKBaseAlertView : UIView @property (nonatomic, strong) UIView * alertBgView; // 背景视图 @property (nonatomic, strong) UIView * operateView; // 操作视图 @property (nonatomic, strong) UILabel * titleLabel; /