- 博客(33)
- 收藏
- 关注
HeadFirst设计模式_读书笔记_010_状态模式
状态模式:允许对象在内部状态改变的时候改变它的行为。 例如: 我们在12306上买票,行为是卖票,状态有两个,有余票则出票成功,余票不足就出票失败。public class Station { public State state; private int tickets = 0; public Station(int tickets) { this.t...
2017-03-30 17:17:43 113
HeadFirst设计模式_读书笔记_009_ 组合模式
组合模式:允许将对象组合成树形结构来表现“整体/部分”的结构,让用户可以用一致的方式处理个别对象以及组合对象。 public abstract class Node { protected String name; protected String desc; public Node(String desc, String name) { this.name =...
2017-03-30 15:55:31 63
HeadFirst设计模式_读书笔记_009_ 组合模式
protected String name; protected String desc; public Node(String desc, String name) { this.name = name; this.desc = desc; } public void addChild(Node node) { throw new UnsupportedOperationException(); } public void removeC
2017-03-30 15:55:31 93
HeadFirst设计模式_读书笔记_008_模板方法
模板方法模式:在一个方法中定义了一个算法的骨架,而将实现延迟到子类中。模板方法使得子类在不改变算法结构的同时提供自己的特定实现。 public abstract class Templet { public void prepareDinner() { buyGroceries(); washgroceries(); choppingVegetables...
2017-03-28 15:22:29 95
HeadFirst设计模式_读书笔记_008_模板方法
public abstract class Templet { public void prepareDinner() { buyGroceries(); washgroceries(); choppingVegetables(); cook(); } abstract void buyGroceries(); public void washgroceries() { System.out.println("洗菜了~~&qu
2017-03-28 15:22:29 92
HeadFirst设计模式_读书笔记_007_外观模式
外观模式:提供了一个统一的接口,用来访问子系统中的一群接口或者一个很大的接口,总之外观模式的目的是简化并统一其他的接口。与适配器不同的是,它不会修改其他的接口,只是将客户从一个复杂的子系统中解耦出来。 public class Airconditioner { int tempture; public void turnOn() { System.out.prin...
2017-03-28 14:30:39 82
原创 HeadFirst设计模式_读书笔记_006_适配器模式
适配器模式:将一个类的接口装换成另一个客户期望的接口,让原本两个不同的类使用起来像是一个类。分为类的适配器和对象的适配器。 对象的适配器:使用组合的方式达到适配的效果。 public interface Target { public void run();} public class Dog implements Target{ @Override...
2017-03-27 16:28:11 82
原创 HeadFirst设计模式_读书笔记_006_适配器模式
适配器:使用组合的方式达到适配的效果。 public interface Target { public void run();} public class Dog implements Target{ @Override public void run() { System.out.println("狗狗在地上跑"); }} public class Fish { public void swim()
2017-03-27 16:28:11 120
HeadFirst设计模式_读书笔记_005_命令模式
命令模式:允许将发出请求的对象和接受并执行这些请求的对象分割开来,即实现请求调用者和请求接受者之间的解耦。定义:将请求封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。 调用命令的是Invoker,执行命令的实际上是Receiver。通过命令模式,将各种动作封装成Command,实现了Invoker和Receiver的彻底解耦。Invoker只管发出命令,Receiver只...
2017-03-27 15:17:25 102
HeadFirst设计模式_读书笔记_005_命令模式
便使用不同的请求、队列或者日志来参数化其他对象。 调用命令的是Invoker,执行命令的实际上是Receiver。通过命令模式,将各种动作封装成Command,实现了Invoker和Receiver的彻底解耦。Invoker只管发出命令,Receiver只管执行相应的操作。public interface Command { public void execute();} public class Dog { public void foundBone() {
2017-03-27 15:17:25 79
HeadFirst设计模式_读书笔记_004_单例模式
单例模式:确保一个类只有一个实例,并提供一个全局访问点。通常被用来管理公共资源。例如,数据库连接池或是线程池。public class Singleton { private static Singleton instance; private Singleton() { System.out.println("There is only on Singleto...
2017-03-27 14:06:18 92
HeadFirst设计模式_读书笔记_004_单例模式
ivate static Singleton instance; private Singleton() { System.out.println("There is only on Singleton "); } public static Singleton getInstance() { if(instance == null) { instance = new Singleton(); } return ins
2017-03-27 14:06:18 57
原创 移动自动化测试_Appium_003_连华为P9真机测试
我的手机是华为P9的,手头也没有其他测试的机子。就只能拿自己的当小白鼠了~~ 1. 开启手机的USB模式。USB模式其实就是android的一个开发者模式, 是哪一款手机,直接百度查下相应的USB模式怎么开,大把的回答的。华为的步骤是: 进入手机主界面->设置->关于手机->版本号 连续快速的点击版本号多次...
2017-03-14 16:22:46 512
原创 移动自动化测试_Appium_002_第一个测试示例
我比较熟悉的是Java代码,Appium也支持多种语言的测试。所以第一个例子还是用最熟悉的语言吧。熟悉原理之后再试试其他的语言。 依赖的jar包:(相关依赖包已上传百度云盘,文章最后有共享路径) java-client-2.2.0.jar selenium-server-standalone-2.46.0.jar testng-6.8.8.jar ...
2017-03-14 13:40:47 129
原创 移动自动化测试_Appium_001_环境安装
1. 安装Appium 下载地址: http://appium.io/ 页面就一个醒目的Download按钮,直接下载安装包,解压安装。貌似还需要安装nodejs,因为我机器上本来就安装了一堆的软件。所以一下子就安装成功了。 这个软件还是比较好安装的,没啥需要多说的,万一需要啥相关的软件,反正人家提示啥你就装啥就对了。安装成功的界面: 2. 自从某歌作死被封之后...
2017-03-14 09:03:18 107
原创 HeadFirst设计模式_读书笔记_003_装饰者模式
1.问题的引入: 有时候我们需要动态地扩展对象的功能。比如现在给快餐店编写一菜单程序。主食和菜品可以互相搭配,我们要怎么确立餐厅需要的各种菜单类呢? 首先我们尝试下类的继承能不能解决问题: 主食和菜是两个接口,任何一个菜单里面都应该搭配主食和菜,那我们就把所有的搭配都定义成类。菜单是一个实现了这两个接口的超类,任何一种特定的主食+菜式搭配都可以定义一个新类,继承菜单这...
2017-03-10 11:42:21 145
原创 HeadFirst设计模式_读书笔记_003_装饰者模式
的各种菜单类呢? 首先我们尝试下类的继承能不能解决问题: 主食和菜是两个接口,任何一个菜单里面都应该搭配主食和菜,那我们就把所有的搭配都定义成类。菜单是一个实现了这两个接口的超类,任何一种特定的主食+菜式搭配都可以定义一个新类,继承菜单这个超类就可以了。 这样写肯定是会被老大骂的,主食和菜式特别多的时候,类的数量级也特别大。维护量太大。三种主食,20种菜的话就是六十个类。哪天新加一种主食,开发得写20个类,还是在一个主食只能搭配一种菜式这种最简单的情况下,不利于扩展,p
2017-03-10 11:42:21 71
HeadFirst设计模式_读书笔记_002_观察者模式
1.实际问题 还是拿传统的订报纸业务举例吧。虽然现在看报纸的人越来越少了。现在要我们给报社做一个用,只要用户订阅了报纸,一旦有新的报纸出来了就要送给客户。用户退订了就不用送了。 老师叫我们面向对象编程,那么这个问题的对象有哪些呢? 报社:新的报纸可以当作是它的一个状态,一旦报纸有更新,就要推给用户。 用户:用户是另外一个对象。并且很明显,它依赖报社报纸的更...
2017-03-08 22:38:13 107
HeadFirst设计模式_读书笔记_002_观察者模式
纸出来了就要送给客户。用户退订了就不用送了。 老师叫我们面向对象编程,那么这个问题的对象有哪些呢? 报社:新的报纸可以当作是它的一个状态,一旦报纸有更新,就要推给用户。 用户:用户是另外一个对象。并且很明显,它依赖报社报纸的更新。只有报社里面有新的报纸它才能收到。 这个问题还有什么特殊的地方吗?对了,报社只有一个,但是用户可能有多个。这是一个典型的一对多的关系。并且他们存在依赖,报社有新的报纸,用户应该及时收到,毕竟谁也不想花钱去看过时的旧闻吧。而且用户可以随时
2017-03-08 22:38:13 90
HeadFirst设计模式_读书笔记_001_策略模式
1.引出策略模式: Joe上班的公司设计了一款模拟鸭子各种行为的游戏,游戏当中出现了各种各样的鸭子。 鸭子有很多行为,例如:在屏幕上显示、叫、游泳等。 因为有很多种类型的鸭子,最开始大部分行为差不多,当然显示肯定是不一样的。所以我们很自然的想到了用继承解决问题,我们可以定义一个鸭子的父类。每种类型的鸭子都继承它就可以了。 这样可以很好的复用代码,...
2017-03-07 23:13:10 81
Python学习笔记(基础篇)_014_GUI模块 easygui的使用
如何导入easygui模块:1.下载本文附件:2016_First_Updates.zip 解压到任意目录。我是解压到了D:\python\easygui 也可以自己到网上下载最新的资源,但是一定要注意保证安装的python版本和easygui的版本是不是兼容的。版本不对的话可能是会出问题的。这里用的版本在python3.4下是没问题的。 命令行: cd/d easygui...
2017-03-05 21:23:31 233
数据库理论_事务&并发控制_001
事务:用户定义的一组数据库操作序列。这些操作要么都做要么都不做,它是一个不可分割的工作单元。 事务的特性:(ACID)原子性(Atommicity)、一致性(Consistency)、隔离性(Isolation)、持续性(Durability)原子性:事务是数据库的逻辑操作单元,事务中的操作要么都做要么都不做。 所谓逻辑操作单元,我是这样理解的。我们都知道数...
2017-03-03 16:42:39 138
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人