javascript-简单工厂两种植实现方式

率先种简单工厂测试代码

所谓的数据类型:对数码进行合并之归类,从网的角度出发为了能够采取统一的法门进行田间管理还好之运有限的上空。

其次种简易工厂测试

mysql> create
table my_decimal(f1 float(10,2),d1 decimal(10,2)) charset utf8;

 

结果:浮点数一定会展开四放弃五抱(超出精度范围):浮点数如果是以系统进位导致整数超出指定的尺寸那么网为同意成立

 1          //第二种
 2          function createBall(type,intro,num,ballsize){
 3              var o = new Object();
 4              o.intro = intro;
 5              o.num = num;
 6              o.ballsize = ballsize;
 7              o.getMember = function(){
 8             //公共方法getNember
 9                  console.log("每个队伍需要"+this.num+"名队员");
10              }
11              o.getBallSize = function(){
12             //公共方法getBallSize
13                  console.log(this.ballsize);
14              }
15              if(type == 'basketball'){
16                  //篮球差异部分
17              }
18              if(type=="football"){
19                  //足球差异部分
20              }
21              if(type=="tennis"){
22                  //网球差异部分
23              }
24              return o;
25          }

图片 1

老二栽简易工厂

存储了3个汉字 3*3+1=10(bytes)

 1         var Basketball = function(){
 2              this.intro = '篮球盛行于美国';
 3          }
 4          Basketball.prototype={
 5              getMember:function(){
 6                  console.log("每个队伍需要5名队员")
 7              },
 8              getBallSize:function(){
 9                  console.log("篮球很大");
10              }
11          }
12          var Football = function(){
13              this.intro="足球在全世界范围类很流行";
14          }
15          Football.prototype={
16              getMember:function(){
17                  console.log("每个队伍需要11名队员")
18              },
19              getBallSize:function(){
20                  console.log("足球很大");
21              }
22          }
23          var Tennis = function(){
24              this.intro="每年有很多网球系列赛";
25          }
26          Tennis.prototype={
27              getMember:function(){
28                  console.log("每个队伍需要1名队员")
29              },
30              getBallSize:function(){
31                  console.log("网球很小");
32              }
33          }
34          
35          //第一种球工厂
36          var ballFactory=function(name){
37              switch(name){
38                  case 'basketball':
39                    return new Basketball();
40                  case 'football':
41                    return new Football();
42                  case 'tennis':
43                    return new Tennis();
44              }
45          }

 

1          //第一种测试
2          var football=ballFactory("football");
3          console.log(football.intro);
4          football.getMember();
5          football.getBallSize();

创立集合表:

简易工厂笔记
 两种办法:
 第一栽:通过实例化对象创建
 第二栽:通过创设一个初指向象然后卷入增强其特性和功力来贯彻
 差异性:前无异种通过类似创建的
对象,如果这些类继承同一个父类,他们父类原型上的艺术是得一起用之;后同样种通过寄生方式开创的靶子还是一个初的私家,所以她们之法子就是不克一起用了
 第一种植和第二种植都 以养足球、篮球、网球也例
 第一栽方法

smallint:小整形,使用2独字节存储,表示的状态最好多号65536栽

         //第二种测试
         var football2=createBall("football","足球在全世界范围类很流行",11,"足球很大");
         console.log(football2.intro);
         football2.getMember();
         football2.getBallSize();

mysql> insert
into my_enum values (1),(2);

图片 2

mysql> insert
into my_int values (‘a’,’b’,’199′,’f’); #不算数据,类型限定

虽默认的,数据库基本都是字段为空,但是其实我们尽量保证拥有数据还非应有为空:空数据尚未意思;空数据没有办法与运算。

— 数据类型(列类型)

浮点型数据的插入:整数有些凡是不克超出长度的,但是小数部分足高于长度(系统会自行四放弃五称)

集结使用办法

枚举原理:枚举在进行多少正式的时候系统会自行建立数字与枚举元素的呼应关系(关系放日志中):然后于展开多少插入的当儿,系统自动将字符转换成为对应之数字存储,然后在进展多少抓取的时,系统自动将数值转换成对应之字符串显示。

以:可以应用要素列表中的元素(多独),使用,分隔

varchart(L):L
代表字符长度理论长度是65536 独字符,但是会多生1至2个字节来规定存储的实际尺寸:但是其实如果长逾255,就既非用定长也无用变长,使用文本字符串text

图片 3

1.涉及项目数据库(磁盘),建立于提到模型上之数据库,数据结构(二维表),浪费空间。

文本字符串根据存储的数据的格式进行分拣:text和blob

浮点型数据是如出一辙种植精度型数据:超出指定范围后,会掉精度(自动四放弃五相符)


. 时间日期类型

SQL中的数值类全部都是默认有号:分正负,但有时候用采取无符号数据:需要为数限定:int unsigned; #无符号,从0开始

mysql> inster
into my_float values(1234567890,12345678.90,1234.56); #符合条件

mysql> insert
into my_int values(100,100,100,100,100,100,100);

图片 4

char(L):L
代表length,可以储存的长短,单位吗字符,最充分长为255.

图片 5

 

图片 6

mysql> insert
into my_date values(‘2015-9-28
11:50:36′,’2015-9-28′,’-11:50:54′,’2015-9-28 11:51:08′,69);

定点型:小树点固定,精度是固定的,不见面少精度

图片 7

图片 8

思念如果使默认值,可以免一定区指定列表;可以使default关键字代替值

定长与边长的积存实际空间(utf8)

1.整数型

mysql服务端对象:DBMS->Datebase->Table->fields

图片 9

SQL 中将数据类型分成三坏接近:数值类,字符串类型和日档次。

图片 10

mysql> inster
into my_float values(3e38,3.01e7,1234.56); #符合条件

探寻有了枚举元素的莫过于规律:按照元素出现的顺序;从1初步开编号

安插数据:作用有:规范数据,数据只能是里的一个

图片 11

mysql> select
hobby + 0, hobby from my_set;

mysql> create
table my_float (f1 float,f2 float(10,2),f3 float(6,2)) charset
utf8;

mediumint:中整型,使用3独字节存储,表示

图片 12

于SQL中,将字符串类型分成了6近乎:char,varchar,text,blob,enum和set

五:集合字符串

1.1 定长字符串

概念:enum(可能出现的因素列表);

改记录

mysql> insert
into my_date values(‘2015-9-28
11:50:36′,’2015-9-28′,’-11:50:54′,’2015-9-28 11:51:08′,2015);

快捷方式:set names 字符集(三件事)

图片 13

创定点数表

mysql> creare table my_class(name
varchar(20) not null,room varchar(20) null) charset utf8; #代表允许为空,null不写默认就是吗空

图片 14

校队集合问题:比较规则:_bin , _cs和_ci

操作数据的通令集合:SQL(DDL,DML[DQL]和DCL)

创造枚举表:

mysql> create
table my_utf82(age tinyint not null,name varchar(21843) not
null,content text) charset utf8;

浮点型:小数点浮动,精度有限,而且会少精度

图片 15

图片 16

使数据量非常特别,通常越255单字节就会见采用文本字符串

图片 17

图片 18

2.小数型

聚拢的精锐在于能够规范数据以及空间,在实际行使被效率优先,所以格外少用。

mysql> insert into my_enum
values(‘男’),(‘保密’); #实惠数据

mysql> insert
into my_date values(‘2015-9-28
11:50:36′,’2015-9-28′,’11:50:54′,’2015-9-28 11:51:08’,2015);

图片 19

mysql
关系项目数据库:c/s结构软件(连接认证,发送SQL指令,服务器处理指令回到结果,客户端接收结果分析结果)

转移服务器返回数据的字符集:character_set_results

mysql> create table my_teacher(name
varchar(20) not null comment ‘姓名’,money decimal(10,2) not null comment
‘工资’) charset utf8;

Timestramp 字段:只要当前所当的笔录被更新,该字段一定会自动更新成时日

察觉有一样久警告,查看警告的命令位: mysql> show warnings;

图片 20

于mysql中,系统也是半自动转换数据格式的:而且基本与php一样(尤其是字符串数字)

mysql> inster
into my_decimal values(12345678.90,12345678.90); #实用数据

Tinyint :迷你整型,使用一个字节存储,表示的状态最好多号256独(常用)

规章:插入数据

图片 21

零填充的含义(显示涨幅):保证数据格式

图片 22

1.2 文本字符串

图片 23

字符集问题:中文数据问题

数值型数据:都是数值,系统将数值型分为整数和小数型

1.2 变长字符串

mysql> insert
into my_enum values(‘male’); #错数据,没有该因素

UTF8
下 varchar 的实际上顶配:21844 字符

图片 24

mysql> inster
into my_float values(1000.10,1000.10,1000.10); #符合条件

颠倒元素出现的一一

Mysql
中 text 文本字符串,不占记录长度;额外存储,但是text文本字符串也是属于记录的同样有,一定需要占用记录受的局部长度10单字节。(保存数据的地址与长)

改换长字符串:varchar,在分配空间的时候,按照最要命之空间分配,但是实际上最终用了有点,是因现实的数码来规定。

mysql记录在若出另一个字段允许为空,那么网会自动从任何记录着保存一个字节来囤null(若想释放null所占的字节,必须保证所以的字段都允许空)

mysql> inster
into my_float values(123456,1234.12345678,123.9876543);#小数部分是得的

mysql> select gender + 0, gender from
my_enum; #用配段取出来进行+0运算

默认值的见效:使用,在数开展扦插时,不被改字段赋值

九.默认值

图片 25

开创实际案例表:班级表(名字,教室)

意二:节省存储空间(枚举别名:单选框):枚举实际存储的是数要无是字符串

图片 26

Blob :存储二向前制数据(通常并非)

例:mysql> alter table my_int add int_6
tinyint(1) unsigned; #点名显示涨幅为1

例:mysql> insert into my_int
values(1,1,1,1,1,1,1); #零填充+显示涨幅的成效

浮点数的运方式:直接float 表示不曾小数部分;float(M,D):M代表总长度,D代表小数部分长度,整数片段尺寸也 M-D

Time:时间(段),指定的某区间内,-时间到+时间

图片 27

Double: 双精度,占用8个字节存储数据,精度方位大概为15员左右

Float
: 单精度,占用4独字节存储数据,精度范围约也7各类左右

数据库基础知识:

图片 28

图片 29

year 可以以有限各项还是四各

条例:输入数据:只能插入整型,范围外之整型

Year:年份,两种植象征形式,year(2)和year(4):1901-2156

图片 30

创时间日期表

以枚举实际存储的是数值所以可以直接插入数值

mysql> insert
into my_set values(3);

mysql> create
table my_date(d1 datetime,d2 date,d3 time,d4 timestamp,d5 year) charset
utf8;

Mysql
中规定:任何一样长长的记下最丰富无可知超过65535单字节,(varchar 永远达不至理论值) varchar 的实际上存储长度会达标多少用看字符集

mysql> insert
into my_date values(‘2015-9-28
11:50:36′,’2015-9-28′,’-11:50:54′,’2015-9-28 11:51:08′,70);

空属性:NULL(默认的)和NOT NULL(不为空)

mysql> inster into my_float
values(123456,1234.12,123456.56); #平头组成部分超

季:枚举字符串

一旦想就此了65535只字节长度要加个tinyint 字段

— 回顾

2.2 定点型

图片 31

mysql> inster
into my_float values(9999999999,99999999.99,9999.99); #最大值

GBK
下 varchar 的骨子里顶配;32766 字符

章:给表增加一个无符号类型

mysql> insert into my_default (name)
values(‘高强’);

规章:创建同张整型表

Datetime:时间日期,格式是 YYYY-mm-dd HH:ii:ss 表示的限是起1000年初步交9999年,有0值:0000-00-00 00:00:00

mysql> update
my_date set d1 = ‘2015-9-28 11:55:45’ where d5 = 2069;

规章:创建浮点数表

mysql> create
table my_int(int_1 tinyint, int_2smallint, init_3int) charset
utf8;

图片 32

小数型:带有小数点或者限制超整型,SQL中以小数型分成两种植:浮点型和定点型

条例:插入符合条件数据,可以是直小数也可是科学计数法

 

例:mysql> alter table my_int add int_7
tinyint (2) zerofill; #表示显示涨幅为2,0填充

Timestamp:时间戳,并无是时刻穿,只是于1970年开的YYYY-mm-dd HH:ii:ss 格式和datetime 完全一致

枚举的采用方式

定长的磁盘空间比较浪费,但效率高;如果数据多确定长度都同一,那么就是动用定长,如:身份证,电话号,手机号等;

mysql> insert
into my_int values (255,1000,10000,100000); #超出范围

Date:日期,就是datetime 中的date部分

完整性约束:表内和发明中(实体)

mysql> insert
into my_decimal values(99999999.99,99999999.99);

征:显示涨幅的意思是当当数码不够显示涨幅的时刻,会自动为数化对应之显得涨幅;通常要追加配一个面前导0来增加幅度,但是价值大小非移。zerofill(零填充):零填充会导致数据自动变成无符号

查看表结构的时候,发现每个字段的数据类型之后都打带一个括号内有数值,这个是亮涨幅,但它没有其他意义只是报告用户可显得的样式而已;实际上用户是足以决定的,这种操纵不会见改多少本身尺寸;

mysql> alter
table my_int add int_5 tinyint unsigned;

一.数值型

列属性:真正约束字段的凡数据类型,但是数据类型的束缚好纯粹,因此需要有的额外的羁绊来增加保证数据的合法性

图片 33

概念:set(元素列表)

mysql> inster
into my_decimal values(1234.123456,1234.123456); #小数部分超过

mysql> insert
into my_int values (100,100,100,100); #可行数据

图片 34

图片 35

存放整型数据:再SQL中因重多着想什么节约磁盘空间,所以系统以整型分为5类

1.2 变长字符串

图片 36

什么选择定长或者是换长字符串呢?

图片 37

列属性有众多:NULL/NOT NULL,defaul,prinary key,uniquee
key,auto_increment,comment

查看集合数据

八.列描述

图片 38

mysql> create table my_enum(gender
enum(‘男’,’女’,’保密’)) charset utf8;

集合中每个元素都是本着诺二进制位;

浮点数如果进位导致长度溢起是得的,但原则性数异常

int:标准整型,使用4独字节存储(常用)

图片 39

创建表

定点型:绝对保证整数部分非会见于四放弃五抱(不见面少精度),小数部分有或(理论小数部分也不见面丢掉)

翻数据

证字段存储的数码是数值:将数据取出来+0就可以判断发生原本的数据存的到底是字符串还是数值:如果是字符串最终结出永远也0

bigint:大整型,使用8单字节存储

web乱码问题:浏览器解析,php处理(本地文件),数据库处理

定长字符串:char,磁盘(二维表)在概念结构的时候,就曾规定了最终之蕴藏长度,以后不能够改变

mysql> insert
into my_int values(127,1000,10000,100000,255);

sql 基本操作:库操作,表操作(字段)和数据操作

mysql> insert into my_set
values(‘足球’,’台球’,’网球’);

mysql> create table my_set(hobby
set(‘篮球’,’足球’,’乒乓球’,’羽毛球’,’排球’,’台球’,’网球’,’棒球’)) charset utf8; #汇中:每个元素还是针对性诺一个二进制位,被选中为1,没有则为0,组后掉。

图片 40

反服务器接收数据的字符集:chatacter_set_client

mysql> inster into my_set
values(‘网球’,’台球’,’足球’);

mysql> insert into my_default
values(‘范立峰’,’18,default);

汇聚中元素的依次没有干,最终系统都见面去匹配顺序。

图片 41

2.1浮点型

mysql> insert
into my_date values(‘2015-9-28
11:50:36′,’2015-9-28′,’-211:50:54′,’2015-9-28 11:51:08′,2015);

安插数据:可以采取多单因素字符串组合,有足直接插入数值

mysql> insert
into my_decimal values(99999999.99,99999999.999); #进位超出范围

图片 42

变长的磁盘空间比较节省,但是效率低;如果数额不克确定长度(不同数额产生转变),如姓名,地址等

七.列属性

varchar(10):的确存了10单汉字,utf8环境,10*3+1=31

安插数据:定点数的平头部分一定不能够超越长度(进位不得以),小数部分的尺寸可以无限制超出(系统活动四放弃五契合)

 

mysql> create table my_default(name
varchar(20) not null ,age tinyint unsigned default 0,gender
enum(‘男’,’女’,’保密’) default ‘男’) charset utf8;

栽数据:时间time可以是负数,而且好是殊要命之负数,year 可以用2位数插,也足以以4位

三.字符串类型

规章:超出长度插入数据

char(4):在 utf8 环境下,需要4 * 3 = 12 字节

插入数据

Text :存储文字(二进制数据实际上还是储存路径)

图片 43

应用:存储数据,只能存储方面定义好之数据

六:Mysql记录长度

图片 44

汇聚跟枚举很类似:实际存储的凡数值,而休是字符串(集合是多选)

mysql> inster
into my_set values(255);

枚举:enum,事先用有着可能出现的结果还统筹好,实际上存储的数据要是确定号受的一个

text 占用十只字节长度

默认值:某平种植数据会经常性的出现有具体的价,可以另行同开始即指定好,再需要真实的多寡经常,用户可选择性的运用默认值。

默认值关键字:default

排描述:comment,描述没有实际意义:是特地就此来描述字段,会基于表创建语句保存:用来吃数据库管理员来展开了解之。

图片 45