guqing
毕生所求无它,爱与自由而已
设计模式之工厂模式
如何实现工厂模式 还是上面的例子,StudentDao: 创建StudentDao接口 创建StudentDao接口的实现类 写一个beans.properties配置文件,里面包含着具体创建哪一个实现类 首先我们需要造一个工厂,BeanFactory用于生产对象 根据工厂获取实例对象 输出结果: 假设现在需要更改StudentDaoImpl的实现逻辑,那么我们不需要去改它,重新创建一个StudentDaoImpl2 然后在beans.properties的配置文件中更换实现类为StudentDaoImpl2 这样就可以了,其他的我们什么都不需要改变,再次执行测试类,可以看到 这就是工厂模式。
Git 基础使用
分支的重要操作 删除分支 git不允许删除当前所处的分支 如果要删除的分支并没有完全被合并那么要删除就需要使用 -D选项 创建分支并切换的简写命令为: 使用git checkout -可以回退切换分支,例如: 使用git merge 分支名可以将指定的分支合并到当前分支上 例如我在master分支上创建了一个文件名叫test_branch.txt内容为: 然后再创建了一个叫test_branch2的分支在此分支上创建一个相同名称的test_branch.txt内容为: 此时切换回master分支使用git merge test_branch2 如果此时发生冲突,需要手动解决然后用 git add 冲突的文件名告诉git冲突已经解决了然乎使用git commit完成最终合并 分支中的HEAD 使用 可以将已经在暂存区中的文件挪出来即从暂存区删除恢复原来的状态 在只有一个分支的情况下HEAD指向的是当前分支而master指向提交 如果此时在master分支上在创建一个dev分支并切换到dev分支上 如果此时在dev分支上做一次提交那么状态又如下所示: 总结而言就是HEAD是指向当前分支的,而当前分支指向提交 如果将dev分支合并到master在没有任何冲突的情况下的状态如下图: 产生冲突后分支合并冲突: 分支进阶与版本回退 fast-forward 如果可能,合并分支时Git会使用fast-forward模式 在这种模式下,删除分支时会丢掉分支信息 合并时加上--no-ff参数会禁用fast-forward,这样会多出一个commit id 查看log git add .和git commit -m的简写形式 版本回退 回退到上一版本 如果想回退两个版本 回退之后还可以通过commitId前进,通过commitId可以回退到任何提交例如: 返回到某一个版本 例如: 然后就可以通过cmmitId进行版本切换 checkout进阶与stash 使用下面的命令,可以丢弃修改(未添加到暂存区的修改) checkout进行版本切换 但是使用checkout切换版本属于游离状态与之前的版本切换是不一样的。