月份:2018年5月

Home / 月份:2018年5月

【东极岛之旅】东福山:第一缕光

2018-5-27 20:47:02 | Life | 没有评论

东福山在东极岛最东边,与其它几个岛距离都挺远,都说东福山是原生岛屿,海最蓝,基本都是天然

第二天一早7点就坐上了庙子湖到东福山的船,大约30分钟就到了

第一感觉,这里相比庙子湖,更像一个岛,地域也拥挤多了,说明并没有进行太多的二次开发,基本是原生态,海水的感觉不一样

接着是东海第一哨灯塔,孤零零地竖在海中央,显得更为独特

岛上住的房子十分拥挤,但是都有台阶[……]

Read more

【东极岛之旅】庙子湖:后会无期

2018-5-27 20:46:18 | Life | 没有评论

同事千叮嘱万嘱咐要准备晕船药,防晒霜等等,但是我都没准备,毕竟高冷

天气预报未来两天都是有雨的,想着可能是为了别把我晒黑

早晨很早就赶到了半升洞码头,天气果然有一些朦胧,过了一会天空微微飘起了小雨,配合着持续打到码头岸边的浪潮,有一种久违的节奏感

8:30分,到东极的船来了,远看还真像一个模型玩具,大家都很有秩序地登船,我快速咔擦了一张,尽管旁边明文写着禁止拍照

我[……]

Read more

【东极岛之旅】沈家门:半升码头

2018-5-27 20:43:35 | Life | 没有评论

大巴在普陀长途客运站停下,我并没有四处闲逛,直接6路公交车,到了半升洞码头的时候,码头边的大排档一眼望去看不到镜头,惊呆了,整齐有序

今天天气不错,下午4点多天空还比较蓝,配合码头,让人感觉到了一股韩剧里男女主人公因为一些不可抗因素分离多年未见之后即将重逢前的天气渲染

看到这些船并不十分惊喜,因为从小体验多了;小时候跟父亲跑了很多省市,那个年代火车是需要自带板凳,而大多[……]

Read more

【东极岛之旅】舟山游:说走就走

2018-5-24 21:54:45 | Life | 没有评论

昨天下午突然想到海边吹吹风,可是厦门啥的有点太远了,不过的确还真有这想法,和一个前同事瞎侃了下,得到了回复:想看海还不容易,舟山不就有么

晚上稍微搜了搜,马蜂窝,知乎等等搜刮了一通,也没有特意做什么准备工作,一切随心,东西整理好,第二天出发完成说走就走的旅行

今天一早去完成了公司体检,自从来到了杭州,每年都要做体检,轻车熟路,体检完在医院吃完早餐后,回来背起包就出发了,身上还有心电图那[……]

Read more

Java服务端单元测试指南

2018-5-17 21:15:59 | Java, Testing | 没有评论

转自阿里巴巴墨源:Java服务端单元测试指南

一. 前言

单元测试并不只是为了验证你当前所写的代码是否存在问题,更为重要的是它可以很大程度的保障日后因业务变更、修复Bug或重构等引起的代码变更而导致(或新增)的风险。

同时将单元测试提前到编写正式代码进行(测试驱动开发),可以很好的提高对代码结构的设计。通过优先编写测试用例,可以很好的从用户角度来对功能的分解、使用过程和接口等进行设计,从而提[……]

Read more

设计模式:Visitor模式

2018-5-15 21:59:02 | Java | 没有评论

通常数据结构中保存了许多元素,然后对这些元素进行处理;然而这些处理的代码实现放在哪里,通常可能就放在表示数据结构的类中,但是如果处理方式有很多种,那么每次只要增加一种处理,就必须要去修改表示数据结构的类

Visitor模式,访问者模式;这种设计模式将数据结构和处理分离开来,编写一个表示“访问者”的类来访问数据结构中的元素,并把对各元素的处理交给访问者类,这样,当需要增加新的处理时,只需要编写新的访[……]

Read more

设计模式:Decorator模式

2018-5-11 22:45:41 | Java | 没有评论

装饰器应该是用得比较多的,比如有一个蛋糕,加上奶油,就变成了奶油蛋糕;加上草莓,就变成草莓奶油蛋糕;加上蜡烛,就变成了生日蛋糕;虽然加了各种装饰品,但都依旧还是蛋糕,只不过加上了一些装饰后,目的也更加明确了

Decorator模式就是给对象添加装饰,和蛋糕类似,首先有一个相当于蛋糕的对象,然后不断地装饰蛋糕一样地不断给对象增加功能,就变成了使用目的更明确的对象

下面这个例子,给一个字符串添加边框装[……]

Read more

设计模式:Composite模式

2018-5-9 18:19:52 | Java | 没有评论

组合模式,用于创造出递归结构,能够使容器和内容具有一致性

比如文件系统,文件目录里里可以放入文件,也可以放入子文件目录,同理子文件目录又可以放入文件,也可以放入子文件目录,这个文件目录就形成了一种容器结构,递归结构;虽然文件目录和文件是不同类型的对象,但是它们都可以放入到文件目录中,那么文件目录和文件可以统称为目录条目,directory entry,在目录条目中,文件目录和文件被当做是同一种对象[……]

Read more

设计模式:Strategy模式

2018-5-7 00:03:13 | Java | 没有评论

策略模式,类似算法,属于对象的行为模式,针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换,使得算法可以在不影响到客户端的情况下发生变化

下面有一个用了策略模式的例子,有点复杂,功能是让电脑玩猜拳游戏,有点自我学习的感觉

这里考虑两种猜拳的策略:

第一种策略是如果这局猜拳获胜,那么下一局也出一样的手势,WinningStrategy

第二种策略是根据上一局的手势从[……]

Read more

设计模式:Bridge模式

2018-5-6 00:43:29 | Java | 没有评论

Bridge模式,桥接,参考网络的桥接模式,这里的功能是将类的功能层次结构和类的实现层次结构连接起来

类的层次结构:

功能层次结构

实现层次结构

功能层次结构

如果有一个Something类,如果要在Something中增加新功能,比如一个具体方法,那么可以编写一个Something的子类,比如SomethingGood类,在子类中添加具体方法,这样Something和SomethingGoo[……]

Read more

设计模式:Abstract Factory模式

2018-5-5 16:58:56 | Java | 没有评论

抽象工厂模式,通过抽象工厂将抽象零件组装成抽象产品;不用关心零件的具体实现,而是只关心接口,使用这些接口将零件组装成产品

与之前Factory,Template Method以及Builder模式一样,具体方法的实现在子类中,但不同的是,抽象工厂模式中,子类也有一个具体的工厂,负责将具体的零件组装成具体产品

来一个具体的案例,将带有层次关系的链接制作成HTML文件

最终浏览器显示如下:

Link[……]

Read more

设计模式:Builder模式

2018-5-4 21:36:24 | Java | 没有评论

在构建一些结构复杂的物体,比如建造一个大楼,没法一气呵成,只能先打牢地基,搭建框架,然后一层一层地盖;因此需要先构建组成这个物体的各个部分,然后分阶段给组装起来

如果需要将一个复杂对象的构建和表示分离,使得同样的构建过程可以创建不同的表示的意图时,可以使用Builder构建模式,也叫生成器模式;用Builder模式,用户只需要指定需要构建的类型就可以得到它们,而具体构建的过程和细节就不需要知道了

[……]

Read more

最暖的忧伤

2018-5-4 08:38:26 | Music | 没有评论

最近迷上这首歌,单曲循环老久也很舒服,睡前和起床听听是一种享受,陈小霞+姚若龙+田馥甄=Perfect

作曲 : 陈小霞
作词 : 姚若龙

是雪花一片一片地飘进眼眶
是火花一明一灭的不肯绝望
朝双手吐气躲进记忆的酸枣林
我倚赖成瘾了的你 身在何方

是误会一寸一寸地镌刻成伤
是倔强一呼一吸地故作无恙
我勉强自己体谅缘分啊像柳絮
一起风就不由分说各自飘荡[……]

Read more

设计模式:Prototype模式

2018-5-3 12:46:54 | Java | 没有评论

通常通过new关键字指定类名来生成类的对象实例,但是如果初始化一个类需要消耗非常多的资源,或者是要处理的对象太多了,过程十分复杂的情况下,就不太方便了,性能和安全性也不太好

Prototype原型模式,通过一个原型对象来指明所要创建的对象类型,然后复制这个原型对象来创建出更多同类型的对象

实现Cloneable接口:Cloneable接口的作用是在运行时通知JVM可以安全地在已经实现了此接口的类[……]

Read more

设计模式:Singleton模式

2018-5-1 19:09:38 | Java | 没有评论

单例模式,比较简单,主要是为了提供一种创建对象的方式,涉及到一个单例模式的类,负责创建自身类型的对象,同时确保只有单个对象被创建,那么对于该唯一的对象的访问方式,可以直接访问,而不需要实例化对象来完成

因此这样来说就要求:

Singleton类只能有一个实例

Singleton类创建自身的唯一实例

Singleton类给所有其他对象提供该实例

下面的案例主要验证所创建的实例唯一

创建的类:

[……]

Read more

设计模式:Factory Method模式

2018-5-1 01:41:48 | Java | 没有评论

工厂方法,通过Template Method模式来生成实例的工厂,就是Factory Method模式,和Template Method一样,Factory Method模式超类决定实例的生成方式,但是不决定所要生成的具体的类,具体的处理都还是由子类来负责,这样生成实例的framework框架和实际负责生成实例的类解耦

以制作身份证为例,创建的类如下:

Product:定义一个抽象产品类,类里定[……]

Read more