一、字段上移
1、如果两个子类拥有同样的字段,可以将该字段移至超类。
2、可以减少子类重复的声明。
3、可以在父类实现该字段的行为,减少行为的重复。
二、函数上移
1、如果函数在各个子类中都产生相同的结果,那么应该将其移至超类。
2、可以避免行为的重复,重复的万恶之源。
三、构造函数本体上移
如果各个子类拥有一些本体几乎完全相同的构造函数,那么应该在父类中新建一个构造函数,然后子类在构造函数中调用它。
四、函数下移
如果一个函数只与部分子类有关,那么应该将这个函数移到相关的子类中去。
五、字段下移
如果父类的一个字段只是被部分子类用到,那么应该移动啊相关的子类中去。
六、提炼子类
如果类中的一些特性只被部分的实例用到,那么新建一个子类,将上面所说的那一部分移到子类中去。
七、提炼父类
1、如果两个类有相似的特性,那么为这个两个类建立一个父类,将相同的特性移至父类中。
2、又是去掉重复代码。
八、提炼接口
1、如果几个类的接口有相同的部分,或者被使用的只是接口的子集,那么可以将相同的子集提炼到一个独立的接口中。
2、接口是一大进步。
九、折叠继承体系
如果父类和子类之间没有太大的区别,那么可以将它们合为一体。
十、塑造模板函数
1、如果子类中有些方法一相同的顺序执行类似的操作,但是各个操作的细节上不同,那么可以将这个操作分别放进独立的函数中,并保证相同的函数签名,这样原函数也就变的相同了。将原函数移到父类。
2、这个就是设计模式的模板函数。
十一、以委托取代继承
1、如果子类只使用父类的一部分接口,或者根本不需要继承而来的数据,那么可以在子类中新建一个字段用来保存超类,然后调整子类函数,让它改为委托超类,最后取代它们的继承关系。
2、其实就是用组合提到继承。
3、这个就是设计模式中的委托模式。
十二、以继承取代委托
1、如果两个类是委托关系,并且经常为整个接口编写很多简单的委托函数,那么可以用委托继承委托类。
2、如果委托对象不止被其他一个对象共享,而且委托对象是可变的,在这个情况下,不能以继承取代委托。
我这里所指的传统QA指的是在瀑布式研发流程中的测试工作。
业界星转斗移,对测试工作这些年最大的冲击有两项:自动化测试和敏捷流程。自动化测试使得古老的黑盒测试受到的挑战,对测试人员的门槛要求骤然提高;敏捷则进一步加剧了混乱,不少测试人员发出了QA是不是在敏捷中无用了的哀叹,从而对QA的职业生涯产生了怀疑。
这些冲击很多来自工业领军的公司,比如谷歌。能够翻墙的朋友,可以在youtube看到不少谷歌如何做测试的视频。
如果我们把谷歌和传统QA相比,可以看出一些改进的线索。
我们先把测试从测试对象层次上分为单元测试,接口测试和功能测试。
单元测试指的是对函数级别的测试,常用工具有JUnit等。接口测试指的是对组件或模块外露的API的测试。功能测试指的是端到端的功能测试。以下是一个对比:
Windows下安装git,并且与github连接。
1.安装git,下载地址 : https://code.google.com/p/msysgit/ 。
2.设置github上的用户名和email地址
UsernameFirst you need to tell git your name, so that it can properly label the commits you make.
git config --global user.name "Your Name Here"# Sets the default name for git to use when you commitEmail
Git saves your email address into the commits you make. We use the email address to associate your commits with your GitHub account.
git config --global user.email "your_email@example.com"# Sets the default email for git to use when you commit
Your email address for Git should be the same one associated with your GitHub account. If it is not, see this guide for help adding additional emails to your GitHub account. If you want to keep your email address hidden, this guide may be useful to you.
3.生成SSH key。
Step 1: Check for SSH keysFirst, we need to check for existing ssh keys on your computer. Open up Git Bash and run:
cd ~/.ssh # Checks to see if there is a directory named ".ssh" in your user directory
If it says "No such file or directory" go to step 2. Otherwise, you already have an existing keypair, and you can skip to step 3.