浅谈观察者模式(发布-订阅模式)的应用

面向对象编程是对现实世界的抽象,是通过代码构件一个虚拟世界。在虚拟世界中有人、有物,也有很多关系到“人”和“物”之间的事情和业务。以下我通过一个现实世界中的简单案例,来介绍面向对象编程的一种设计模式——观察者模式,也经常被称为“发布-订阅模式”。现实中的事情经常具有复杂性和相关性,即一件事情发生过后往往引发其他相关联的事情。以网购下单为例:我们在网上商城点击按钮支付订单之后,商城系统的后端会同步通知仓库管理员打包物品发货、记录买家用户的消费日志、给买家用户发送短信提醒等一系列操作。这个看似简单的功能,可以拆分成为4个不同...


阅读正文

SQL中根据特定节点,获取其所有子级节点、父级节点

1. 根据特定节点,获取其下属的所有子级节点WITH temp AS ( SELECT * FROM [表名] WHERE Id=9999 --主键Id=9999 UNION ALL SELECT t.* FROM temp, [表名] AS t WHERE temp.Id=t.ParentId --子级Id=父级Id ) SELECT * FROM temp;2. 根据特定节点,获取其所有父级节点WITH temp AS ( SELECT * FROM [表名] WHERE Id=9999 --主键Id=9999 UNION ALL SELECT t.* FROM temp, [表名] AS t WHERE temp.ParentId=t.Id --父级Id=子级Id ) SELECT * FROM temp;


阅读正文

浅谈组合模式的应用

“面向对象编程”是对现实世界的抽象,是通过代码构建出一个虚拟的世界。 如下图所示,这是一个歌唱比赛节目的游戏规则示例(为便于举例,采用了大家耳熟能详的歌手名称,不代表歌手的演艺实力),如何在虚拟世界中通过代码实现这样的游戏规则呢? 上图表述了游戏的三个阶段: 1. 16进8淘汰赛:由16名参赛者一一对决,票数优先者晋级下一轮比赛,票数落后者被淘汰。 2. 8进4晋级赛:由8名参赛者一一对决,票数优先者晋级到本赛区决赛。 3. 赛区争夺战:由前两个阶段产生出本赛区冠亚军共2名,组成赛区战队,与另一赛区战队对决。对...


阅读正文

浅谈策略模式的应用

“面向对象编程”是对现实世界的抽象,是通过代码构建出一个虚拟的世界。在虚拟世界中有人、有物,这些人和物都被称为“对象”。虚拟世界中的对象与现实世界中的一样,人有姓名、性别、年龄等一系列属性,也有吃饭、如厕、睡眠等一系列行为。 以下我通过一些真实世界中的事例,来介绍如何使用面向对象的思想来构建一个虚拟世界中的行为,并且通过“策略模式”来实现这一行为。 如上图所示,这是我们在现实世界中经常发生的行为,男士入男厕、女士入女厕。那么我们在“面向对象”的虚拟世界中如何实现这一行为呢? 首先通过代码建立“洗手间”和“人”这两个“类...


阅读正文

SQL Server中SQL语句的执行记录

SELECT TOP 1000 ST.text AS '执行的SQL语句' , QS.execution_count AS '执行次数' , QS.total_elapsed_time / 10000 AS '耗时' , QS.total_logical_reads AS '逻辑读取次数' , QS.total_logical_writes AS '逻辑写入次数' , QS.total_physical_reads AS '物理读取次数' , QS.creation_time AS '执行时间' , ST.*, QS.* FROM sys.dm_exec_query_stats QS CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) ST ORDER BY creatio...


阅读正文

Windows下安装Tomcat

1. 进入Tomcat官网下载Tomcat安装包,https://tomcat.apache.org/ 2. 下载完解压后如下图所示: 3. 按图所示,打开环境变量 4. 添加环境变量CATALINA_HOME,变量值为解压后Tomcat的目录 5. 编辑Path,添加3项,分别是:%CATALINA_HOME%\lib%CATALINA_HOME%\lib\servlet-api.jar%CATALINA_HOME%\lib\jsp-api.jar 6. 回到Tomcat解压目录,编辑conf文件加下的tomcat-users.xml文件,在tomcat-user节点的最后一行添加一下代码:<role rolename="manager-gui"/> <role rolename="admin-gui"/> <user username="...


阅读正文

Windows下搭建Java开发环境

1. 在Oracle官网下载JDK安装包进行安装http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2. 打开环境变量项 3. 添加环境变量变量名JAVA_HOME变量值是刚才安装JDK的目录 4. 再修改Path环境变量,添加刚才新建的系统变量%JAVA_HOME%\bin 5. 最后在命令行中输入java -version查看版本号,可验证安装是否成功6. 接下来去Eclipse官网下载IDE吧:https://www.eclipse.org/downloads/


阅读正文

Windows下搭建Vue开发环境

1. 在NodeJs官网(https://nodejs.org/)下载安装包,安装NodeJs环境 2. 双击NodeJs安装包开始安装,稍等片刻即可安装完成 3. 安装完成之后,在cmd命令行中输入以下命令,安装cnpm淘宝镜像:npm install -g cnpm --registry=https://registry.npm.taobao.org稍等片刻即可安装完成 4. 接着输入命令,安装vue-cli脚手架npm install -g vue-cli 5. 至此Windows下的Vue开发环境已经搭建完成! 以下是新建Vue应用过程 1. 新建空文件夹D:\VueProject用于存放应用程序文件 2. 在cmd命令行将当前工作目录切换至D:\VueProject 3. 在工作目录下创建项目,输入...


阅读正文