命令模式

23种设计模式-----行为模式

天涯浪子 提交于 2020-02-27 20:14:08
行为模式: 关注系统中对象之间的相互交互,研究运行时对象之间的相互通信和协作,明确对象职责 1.模板方法模式(template method) 定义了一个操作中的算法 骨架 ,将某些步骤延迟到子类中实现。这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤。 即:处理步骤父类中定义好,具体实现延迟到子类中定义。 开发中:数据库访问的封装、Junit单元测试、servlet中doGet/doPost方法调用、Hibernate中模板程序等等 银行案例: 1 public abstract class BankTemplateMethod { 2 3 //具体方法 4 public void takeNumber() { 5 System.out.println("取号排队"); 6 } 7 8 //办理具体业务 、钩子方法 9 public abstract void transact(); 10 public void evaluate() { 11 System.out.println("反馈评分"); 12 } 13 14 //模板方法 15 public final void process() { 16 this.takeNumber(); 17 18 this.transact(); 19 20 this.evaluate(); 21 } 22 23

linux中vim常用操作

試著忘記壹切 提交于 2020-02-27 17:22:48
三种模式 # 命令模式 vim 文件名 # 插入模式 按a/i/o 进行插入模式 按esc 重新进入命令模式 # 编辑模式 按:(冒号)进入编辑模式 插入命令 命令 作用 a 在光标所在字符后插入 A 在光标所在行尾插入 i 在光标所在字符前插入 I 在光标所在行首插入 o 在光标下插入新行 O 在光标上插入新行 设置行号 前提: 处于编辑模式 # 设置行号 :set nu # 取消行号 :set nonu 定位首行和末行的行首 前提: 处于命令模式 # 跳到首行的行首 gg # 跳到末行的行首 G 跳到指定的行首 前提: 处于命令模式 # 跳到第22行的行首 22G 前提: 处于编辑模式 # 跳到第22号行首 :22 在某一行下,移动光标到行首或行尾 前提: 处于命令模式 # 移动到行首 0 # 移动到行尾 $ 删除命令 命令 作用 x 删除光标所在处字符 nx 删除光标所在处后n个字符 dd 删除光标所在行 ndd 删除贯标所在处n行 dG 删除光标所在行到文件末尾内容 D 删除光标所在行到文件末尾内容 :n1,n2d 删除指定范围的行 # 删除999到1006行的内容 前提: 处于编辑模式 :999,1006d 上面的命令删除了8行,包含999行和1006行 复制和剪切命令 命令 作用 yy 复制当前行 nyy 复制当前行以下n行 dd 剪切当前行 ndd 剪切当前行以下n行

CentOS7安装JDK1.8详细步骤

有些话、适合烂在心里 提交于 2020-02-27 15:06:55
之前一直在自己电脑上通过Vmware Workstation软件来安装CentOS7,最近斥巨资自己组装了一个小电脑,安装CentOS7系统,模拟真实的服务器环境。同时也实现了异地远程开机和访问,并且可以通过ssh连接,这样便相当于拥有了小型服务器(阿里云同等配置的服务器太贵啦,摸摸我干瘪的钱包,哭瞎在厕所…)。既然搞Java,那第一步当然是安装Java的环境。写下这边文章做记录,下次再部署,便可以快乐的CV了… 注意:有可能安装的Linux操作系统本身已经安装了OpenJDK,最好安装之前查看一下,如果系统自身带有OpenJDK可以卸载后重新安装 查看并卸载已安装的JDK 通过 rpm -qa|grep java 的命令查看已安装的JDK 图中可以看到系统自带的OpenJDK的版本等相关信息。下面我们进行卸载,使用 rpm -e --nodeps 命令进行卸载,如下图所示: 把OpenJDK相关的都进行卸载完成后,再通过 rpm -qa|grep java 命令进行查看,发现OpenJDK相关的已经卸载完成。 2.下载Oracle JDK8 百度Java8下载,可以看到第一个就是我们下载的地址,貌似新版的JDK下载都要登录账号了,嫌麻烦的也可以通过其他平台去下载。 JDK8下载Linux的版本,笔者下载的是 jdk-8u211-linux-x64.tar.gz 版本。 3

Vim编辑器的基本使用(打开文件方式)

六眼飞鱼酱① 提交于 2020-02-27 14:14:07
Vim中存在三种模式:命令模式、编辑模式、末行模式 命令模式:在该模式下不能直接编辑文件,可以输入命令,如:复制、粘贴等。(默认模式) 编辑模式:在该模式下可以进行编辑文档 末行模式:可以在末行输入命令对文件进行操作,如:搜索、替换、保存、退出等 vim 打开文件的四种方式 ① vim 文件路径 作用:打开指定的文件 退出: :q 回车 ② vim 数字 文件路径 作用:打开指定的文件,并且将光标移动到指定行 略 ③ vim +/关键词 文件路径 作用:打开制定的文件,并且高亮显示关键词 ④ vim 文件路径1 文件路径2 文件路径3 作用:同时打开多个文件 略 来源: CSDN 作者: 我叫狐狸 链接: https://blog.csdn.net/LoserFei/article/details/104531539

设计模式实战---命令模式

血红的双手。 提交于 2020-02-27 11:31:42
定义与类型 适用场景 优点 缺点 相关模式 备忘录模式 经常结合使用 coding 典型应用是GUI中的绘图程序, 用命令模式实现“撤销”操作. 命令接收者:执行实际任务。 命令者:封装所有命令者的信息。 发起者:空着一个或者多个命令的顺序和执行。 客户端:创建具体的命令实例 public class DrawInvoker { //绘制列表 private List<drawpath> drawList = Collections.synchronizedList(new ArrayList<drawpath>()); //重做列表 private List<drawpath> redoList = Collections.synchronizedList(new ArrayList<drawpath>()); //添加一条命令 public void add(DrawPath command) { redoList.clear(); drawList.add(command); } //撤销操作 public void undo() { if(drawList.size() >0 ) { DrawPath undo = drawList.get(drawList.size() - 1); drawList.remove(drawList.size() - 1); //

Shell 流程控制

微笑、不失礼 提交于 2020-02-27 09:56:12
Shell 流程控制 和Java、PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?php if (isset($_GET["q"])) { search(q); } else { // 不做任何事情 } 在sh/bash里可不能这么写,如果else分支没有语句执行,就不要写这个else,就像这样 if else if if 语句语法格式: if condition then command1 command2 ... commandN fi 写成一行(适用于终端命令提示符): if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi 末尾的fi就是if倒过来拼写,后面还会遇到类似的。 if else if else 语法格式: if condition then command1 command2 ... commandN else command fi if else-if else if else-if else 语法格式: if condition1 then command1 elif condition2 command2 else commandN fi for 循环 与其他编程语言类似,Shell支持for循环。 for循环一般格式为: for var in item1

Linux服务管理

柔情痞子 提交于 2020-02-27 09:50:47
1、简介与分类 1.系统的运行级别 运行级别 含义 0 关机 1 单用户模式,可以想象为Windows的安全模式,主要用于系统修复 2 不完全的命令行模式,不含NFS服务 3 完全的命令行模式,就是标准字符界面 4 系统保留 5 图形模式 6 重启动 运行级别命令 [root@AmorLei ~]# runlevel # 查看运行级别命令 N 3 [root@AmorLei ~]# init 运行级别 # 修改运行级别命令 系统默认运行级别 [root@AmorLei ~]# vi /etc/inittab # inittab is only used by upstart for the default runlevel. # # ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM. # # System initialization is started by /etc/init/rcS.conf # # Individual runlevels are started by /etc/init/rc.conf # # Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf # # Terminal gettys are

oracle基础学习

吃可爱长大的小学妹 提交于 2020-02-27 08:18:22
1.desc table_name 可以查询表的结构 2.怎么获取有哪些用户在使用数据库 select username from v$session; 3.如何在Oracle服务器上通过SQLPLUS查看本机IP地址 ? select sys_context('userenv','ip_address') from dual; 如果是登陆本机数据库,只能返回127.0.0.1 4.如何给表、列加注释? SQL>comment on table 表 is '表注释'; 注释已创建 SQL>comment on column 表.列 is '列注释'; 注释已创建。 SQL> select * from user_tab_comments where comments is not null; 5.如何在ORACLE中取毫秒? select systimestamp from dual; 6.如何在字符串里加回车? 添加一个||chr(10) select 'Welcome to visit'||chr(10)||'www.CSDN.NET' from dual ; 7.怎样修改oracel数据库的默认日期? alter session set nls_date_format='yyyymmddhh24miss'; 8.怎么可以看到数据库有多少个tablespace? select

Linux 的cp命令

99封情书 提交于 2020-02-27 08:03:17
Linux 的cp命令 功能: 复制文件或目录 说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息 参数: -a 或 --archive 此参数的效果和同时指定"-dpR"参数相同 -b 或 --backup 删除、覆盖目的文件先备份,备份的文件或目录亦建立为符号链接,并指向源文件或目录链接的源文件或目录。假如没有加上这个参数,在复制过程中若遇到符号链接,则会直接复制源文件或目录 -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在 -i 或 --interactive 覆盖文件之前先询问用户 -l 或 --link 对源文件建立硬链接,而非复制文件 -p 或 --preserve 保留源文件或目录的属性,包括所有者、所属组、权限与时间 -P 或 --parents 保留源文件或目录的路径,此路径可以是绝对路径或相对路径,且目的目录必须已经丰在 -r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理 -R 或 --recursive 递归处理,将指定目录下的文件及子目录一并处理 -s 或 --symbolic

让你的 Linux 命令骚起来

…衆ロ難τιáo~ 提交于 2020-02-27 03:38:13
@[toc] 本文将为读者提供许多不同 Linux 命令的简要概述。 将特别强调解释如何在执行数据科学任务的上下文中使用每个命令。 我们的目标是让读者相信这些命令中的每一个都非常有用,并且让他们了解每个命令在操作或分析数据时可以扮演什么角色。 管道符号 “ | ” 许多读者可能已经熟悉了“ | ”符号,但是如果不熟悉的话,值得提前指出: 下面几节中讨论的命令的所有输入和输出都可以使用“ | ”符号自动“管道”输入到彼此中! 这意味着每个命令完成的所有特殊任务都可以链接在一起,从而生成非常强大和简短的迷你程序,所有这些都直接在命令行上完成! grep 什么是 grep? “ grep”是一个可用于从文件中提取匹配文本的工具。 您可以指定许多不同的控件标志和选项,这些标志和选项允许您非常有选择性地确定希望从文件或流中提取哪些文本子集。 Grep 通常用作“面向行”的工具,这意味着在找到匹配的文本时,Grep 将打印该行上的所有文本,尽管您可以使用“-o”标志只打印匹配的行部分。 为什么 grep 是有用的? “ grep”很有用,因为它是在大量文件中搜索特定文本块的最快方法。 一些很好的用例有: 从巨大的 web 服务器日志中过滤访问特定的 web 页面; 为特定关键字的实例搜索代码库(这比使用 Eclipse Editor 的搜索要快得多,也更可靠) ; 在 Unix