设计模式-装饰者模式在JDK中,使用到了很多设计模式,例如装饰者模式、观察者模式,它广泛存在于Java I/O中,说实话,刚学习Java I/O时有点懵,他的类是在太多了,可供选择的就十多种,还有很多叫不上名字的IO类,当时一度怀疑自己不是学编程的选手。
今天重点所说的就是装饰者模式,也算是一个总结吧
场景这个场景很简单,为某冷饮店制造一个收费系统。
他的业务是这样的,主要的为饮品收费,其他的收费项目为配料收费,例如在点了饮品的基础上增加了珍珠、椰果等配料,然后计算总的费用。
问题解决大家的想法可能是这样:当购买哪一种类的饮料时,就创建出来这个对象,如果想另外增加配料,再创建出来配料类的...
设计模式-策略模式设计模式在我们的日常开发中十分重要,好的软件架构可以使软件更加强壮,使软件变得更易于维护,建立可以维护的软件系统,要诀就在于随时想到系统以后可能需要的变化以及应付变化的原则。相信大多数的人都学习过面向对象语言,c++、java、python,这些面向对象的语言精髓就在于抽象、继承、多态,但是只知道这三样是不能设计出好的软件的,里面需要设计模式的参与。
有过web开发经验的小伙伴可能对Spring、MyBatis这类的框架比较了解,这类框架的实现里面充满了设计模式,各种设计模式,从而它才能走的长远,想要走的长远就需要维护,想要维护就需要好的软件架构,再加上它功能的强大,因...
linux指令-which-whereiswhichwhich指令用来搜索其他指令的详细位置,他搜索的路径是PATH环境变量中的的一系列路径
命令格式:
1which [options] [--] programname [...]
参数:
参数
解释
-a
将PATH下的搜索到的所有结果全部列出来
演示:
搜索ls所在的位置
123[sui@VM-8-14-centos ~]$ which lsalias ls='ls --color=auto' /bin/ls
可以看到出现了一个alias,这个是别名代表输入ls则等同于输入了后面的一...
linux指令-touchtouch指令用于创建一个空文件,以及用来修改文件的atime、mtime
在介绍touch指令之前,需要澄清三个概念,linux文件系统中的时间。
在linux文件系统中,每个文件或目录都有三个时间,关于这三个时间的查看,可以使用stat命令或者ls -time={atime, ctime, mtime}查看
最后的访问时间(atime,access time)
最后的修改时间(mtime,modification time)
最后的改变时间(ctime,status time)
atime好理解,atime例如我们查看文件内容的时候,...
linux指令-nlnl可以将输出的文件内容自动加上行号,并且可以将行号做比较多的显示设计,包括位数与是否自动补齐0等等功能
命令格式:
1nl [OPTION]... [FILE]...
参数:
参数
解释
-b a
对空行同样列出行号
-b t
对空行不列出行号
-n ln
行号在自己字段的左侧显示
-n rn
行号在自己字段的右侧显示,且不自动加0
-n rz
行号在自己字段到的右侧显示,且自动补0
-w
指定行号占用的字节数
演示:
-b a与-b t的区别
1234567[root@VM-8-14-centos blog]# nl -b a ...
linux指令-cat-taccat指令以及tac指令用来查看文件的内容,使用也是十分便利
命令格式:
12345# catcat [OPTION]... [FILE]...# tactac [OPTION]... [FILE]...
参数:
cat参数
解释
-b
列出行号,只列出非空白行,空白行不进行编号
-n
列出行号,空白行也进行编号
-E
将结尾的断行字符$打印出来
-T
将tab以^I打印出来
-v
列出一些看不出来的特殊字符
-A
相当于-vET的整合,列出特殊字符
演示:
查看/etc/man_db.conf
1234567[root@...
linux指令-mv-附带获取路径的文件名以及目录名称mv指令的作用在于移动文件或目录,以及改名操作
命令格式:
123mv [OPTION]... [-T] SOURCE DESTmv [OPTION]... SOURCE... DIRECTORYmv [OPTION]... -t DIRECTORY SOURCE...
参数:
参数
解释
-f
强制执行,目标文件已经存在,也不会进行提示
-i
交互式进行,目标文件已经存在则会提示是否覆盖
-u
只有源文件比目标文件新时才会更新
演示:
将一个文件启动到其他文件夹中
1234567[root@VM-8-14-c...
shell脚本-判断变量是否为空第一种方式
1234if [ -n $1 ]then echo '$1 is null1'fi
如果$1为空,则会返回true
第二种方式
1234if [ "" = "$1" ]then echo '$1 is null2'fi
第三种方式
1234if [ ! $1 ]then echo '$1 is null3'fi
第四种方式
1234if test -z $1then echo '$1 is null4'...
linux指令-rmrm指令通常用来删除文件或者目录,使用它删除文件或者目录,那么一切就没有了,世界就安静了,所以执行删除命令的时候一定要小心,否则会一失足成千古恨的。
命令格式:
1rm [OPTION]... [FILE]...
参数:
参数
解释
-f
强制删除,不会再出现确认删除信息
-i
互动模式,在删除时会再次询问是否删除
-r
递归删除,即可以删除目录
演示:
删除一个普通的文件
12[root@VM-8-14-centos test]# rm aaaarm:是否删除普通文件 "aaaa"?y
当真正的执行删除的操作时,会提示是否...
linux指令-cpcp指令我们一般用来进行文件的复制,全称为 copy files and directories。但是,不同的身份执行这个命令会得到不同的结果。
命令格式:
123cp [OPTION]... [-T] SOURCE DESTcp [OPTION]... SOURCE... DIRECTORYcp [OPTION]... -t DIRECTORY SOURCE...
参数:
参数
解释
-a
相当于-dr
-d
若复制的文件为软链接文件,则会复制软链接所指的文件,而非软链接本身
-f
强制执行
-i
若目标文件存在,则询问是否覆盖
-l
对...