设计模式(3)适配器
Template Method模式Template Method 模式就是带有模板功能的模式,组成模板的方法被定义在父类中。由于这些方法是抽象的,我们唯一能知道的就是父类是如何调用这些方法的。
实现上述方法的是子类。在子类中实现了这个抽象方法也就决定了具体的处理。
也就是,只要在不同的子类中实现不同的处理,当调用模板方法时,程序行为也会不同。但是,不论如何实现,处理的流程都会按照父类中定义的那样进行。
像这样在父类中定义处理流程的框架,在子类中实现具体处理的模式就称为 Template Method模式。
示例代码AbstactDisplay
123456789101112public abstract class AbstractDisplay { // 抽象类AbstractDisplay public abstract void open(); // 交给子类去实现的抽象方法(1) open public abstract void print(); // 交给子类去实现的抽象方法(2) print public abstra ...
Go常见面试题【由浅入深】
常考的点包括:切片,通道,异常处理,Goroutine,GMP模型,字符串高效拼接,指针,反射,接口,sync,go test和相关工具链。
面试题1来源:geektutu解答:迹寒
= 和 := 的区别?=是赋值变量,:=是定义变量(声明变量并赋值)。
指针的作用一个指针可以指向任意变量的地址,它所指向的地址在32位或64位机器上分别固定占4或8个字节。指针的作用有:
获取变量的值
改变变量的值
用指针替代值传入函数
Go 允许多个返回值吗?可以。通常函数除了一般返回值还会返回一个error。
Go 有异常类型吗?有。Go用error类型代替try…catch语句,这样可以节省资源。同时增加代码可读性
也可以用errors.New()来定义自己的异常。errors.Error()会返回异常的字符串表示。只要实现error接口就可以定义自己的异常,
123456789101112type errorString struct { s string}func (e *errorString) Error() string { return e.s ...
设计模式(1)迭代器
Iterator模式使用java语言显示数组arr中的元素时,我们可以使用下面这样的for循环遍历数组
123for (int i = 0; i < arr.length; i++) { System.out.printlf(arr[i]);}
循环变量 i 初始值为0,随后会递增为1,2,3…,每次循环都会输出 arr[i]将循环变量 i 抽象化、通用化后形成的模式,在设计模式中称为 Iterator模式
Iterator模式用于在数据集合中按照顺序遍历集合。
Iterator有反复做某事的意思,汉语称为“迭代器”
示例代码Aggregate
123public interface Aggregate { public abstract Iterator iterator();}
Book
123456789public class Book { private String name; public Book(String name) { this.name = name; ...
设计模式(2)适配器
Adapter模式程序中经常会存在现有程序无法直接使用,需要做适当变化后才能使用的情况。这种填补“现有程序”和“所需程序”之间差异的设计模式就是Adapter模式。
Adapter模式也被称为Wrapper模式。Wrapper有” 包装器 “的意思替我们将某样东西包装起来,使其能够用于其他用途的东西就被称为”包装器“或者”适配器“
Adapter模式有以下两种
类适配器(使用继承的适配器)
对象适配器(使用委托的适配器)
示例代码(类适配器)Banner
12345678910111213public class Banner { private String string; public Banner(String string) { this.string = string; } public void showWithParen() { System.out.println("(" + string + ")"); } pub ...
MongoDB基本语法
NoSQL 简介NoSQL(NoSQL = Not Only SQL ),意即”不仅仅是SQL”。NoSQL 是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。
关系型数据库遵循ACID规则
A (Atomicity) 原子性
原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。
比如银行转账,从A账户转100元至B账户,分为两个步骤:1)从A账户取100元;2)存入100元至B账户。这两步要么一起完成,要么一起不完成,如果只完成第一步,第二步失败,钱会莫名其妙少了100元。
C (Consistency) 一致性
一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。
例如现有完整性约束a+b=10,如果一个事务改变了a,那么必须得改变b,使得事务结束后依然满足a+b=10,否则事务失败。 ...
Golang并发编程
协程 go函数相互独立运行的能力。Goroutines是并发运行的函数
创建语法1go task()
实例112345678910111213141516171819202122232425package mainimport ( "fmt" "time")func f1(s string) { for i := 0; i < 10; i++ { fmt.Printf("第%d次执行 %v \n", i + 1, s) time.Sleep(time.Millisecond * 100) }}func main() { go f1("test") // f1("test") f1("test2") fmt.Println("over")}
通道 channel用于在协程之间共享数据作为协程之间的管道保证通信同步需要在声明通道时指定数据类型任何给定时间都只有一个能访问通道
通 ...
数据库课设报告
E-R图
数据库结构
关系模式
设备 (设备id 设备类型 出厂号 描述 位置 型号 管理人工号 厂家 报修电话 维保日期 购买时间 录入员)路由器 (设备id 唯一标识 操作系统 管理 管理IP 账号 密码 配置文件 端口属性连接信息 )服务器(设备id 管理 管理IP 账号 密码 cpu 内存(单位MB) 硬盘 ip地址 支持的端口和服务)交换机( 设备id ip地址 )员工(姓名 性别 工号 电话 用户名 密码 部门)故障记录 ( 唯一标识 故障级别 维修结果 设备id)位置信息 ( 位置信息id 楼号 房间号 机架号 机架中的层 |)
建表用户表12345678910111213141516171819SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for employee-- ----------------------------DROP TABLE IF EXISTS `employee`;CREATE TABLE `emp ...
数据库高级教程
SQL简介SQL (Structured Query Language:结构化查询语言) 是用于管理关系数据库管理系统(RDBMS)。 SQL 的范围包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制。
演示用数据库表s
1234567891011121314+-----+-----------+--------+------+------+| sno | sname | gender | dept | age |+-----+-----------+--------+------+------+| 801 | 金贤重 | 男 | CS | 23 || 802 | 李敏镐 | 男 | MA | 25 || 803 | 那英 | 女 | CS | 41 || 804 | 金秀贤 | 女 | MA | 24 || 805 | 刘德华 | 男 | NULL | 52 || 806 | 文章 | 男 | CS | 27 || 80 ...
数据库课设笔记
网络设备管理系统教学目的与要求“数据库与信息管理课程设计” 是网络工程、软件工程和计算机科学与技术专业集中实践性环节之一;是计算机学科基础的一门重要的实践教学课程;是学习完“数据库概论” 课程后进行的一次全面的综合练习。其目的在于加深对数据库基础理论和基本知识的理解,掌握使用数据库进行软件设计的基本方法,提高运用数据库解决实际问题的能力,最终实现对于给定的应用要求,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。同时,此次设计对于同学将来的毕业设计和具体工作实践将有重要的意义。
要求有清晰的数据库设计思路(概念结构设计、逻辑结构设计、物理设计);关系模式规范到3NF以上,至少有三种完整性约束。
数据库管理系统的选择:鉴于这次课程设计是在线上进行,每位同学的上机条件有限,可以选择方便使用的关系数据库管理系统, 比如Oracle , MY SQL,SQL Server, ……开发工具的选择:Python,Java,.net,PHP等
优秀标准:较好的实现了所有功能;数据库设计思路清晰,有比较完善的触发器或者存储过程。
良 ...
数据库学习准备语法
基础语法
SQL 不区分大小写,这意味着 SELECT 和 select 在 SQL 语句中是一样的,但是关键字通常以大写形式出现。
注意,表名是区分大小写的,您必须使用数据库中已经存在的表名。
所有运行结果以我的本地数据为例
查询所有数据库1show databases;
运行结果:
1234567891011121314+--------------------+| Database |+--------------------+| information_schema || laravel || mysql || performance_schema || pis_db || renren_security || school || ssm_db || sys || test |+--------------------+
查询指定数据库中所有表名1234567 SELE ...