00:00
好,咱们获取的命令完成之后呢,再紧接着继续往下面写代码,就开始去创建这个命名空间了啊接下来呢,咱们再写一个注释叫二啊,叫调用方法创建命名空间啊,这个方法呢,怎么去使用,大家不用担心,非常简单,它已经都把我们封装好了,直接对admin对象调用方法create namespace就可以了啊它这个问题在哪呢?在于里面让你填写的这个参数。这个参数的名字呢,叫name space description这什么东西呢,命名空间的一个描述啊,因为是第一次使用这种格式啊,我们呢要统一做一个介绍,为什么要这样去设计啊,他为什么不在创建命名空间的时候直接给我们填一个。字符串命名空间的名字,然后创建完成啊为什么不不涉及的简单一点呢?哎,要写这么复杂,还要设计一个对象呢啊这里呢要给大家介绍一下。在我们这些所学习的Java框架里面啊,它都有一个比较常识性的东西啊,呃,我们现在写的这个代码呢,目的都是为了要实现,我们同样在先要里面有的这个功能,是这样吧,哎,但是呢,它实际上在进行对比的时候呢,先更加表层一点,而代码呢更加底层一点,所以行间有个共识啊,只要是shell这种东西,工具这种东西能够实现的功能,你用底层的代码一定能实现啊,这意味着什么呢?我们来看一下shell里面啊,这是我们之前进入的shell的一个命令行,我们调help,然后写。
01:35
Help,然后单引号啊,Create_name space啊,单引号这些,当我们在去查看创建命名空间这个下命令的时候呢,它会给我们展示两种使用方法,一种直接填一个名字完成创建,另一种可以往里面加一些KV的建池对,进行一些描述,哎,关键就在这个KV建池对上,你想一下,在底层这个she里面,我们就可以去创建一个KV建队,那么在更加底层的代码里面,我们一定能实现这个功能啊,这也是为什么它没有给我们提供一个直接填名字的一个东西,而是让我们去填一个描述,这个描述就是为了让你面往里面添加KV的键值,对啊,大家不要嫌麻烦啊,这个代码呢,相对更底层一点,它就会这样去设计啊,咱们也来写一下注释。
02:25
叫代码相对shell啊,更加底层。啊,更加底层啊,所以shell能够啊实现的功能。代码一定能实现。啊,因为本质上shell它底层执行的也是这个代码啊,所以这个地方呢,是让你填一个完整的命名空间描述啊,所以。需要啊,填写完整的命名空间描述啊,你这个KV键隔呢,就会放在这个对象里面作为属性来保存起来啊,这么来进行一个设计的好,那他既然让我们填一个属性嘛,填一个类的话呢,那我们没办法只能去new一个对象了,我们尝试来new一个name space Dis啊,那我们写出new方法之后呢,它这个地方就爆红了啊,这个地方为什么爆红呢?它不是因为异常啊,你点这个构造器,你点完之后你就发现它的构造器是私有化的啊,两个构造器都是私有化的啊,你不要去想啊,是不是没填参啊,填餐也没用啊,填参也白搭啊,这两个构造器都是私有化的啊,既然构造器私有化,那new肯定是不行了啊,这就涉及到创建对象的几种方式,对吧?我们比较常用的就是这个构造器,除了构造器之外呢,其实还有一个常用的啊,我们可以使用里面的静态方法看一下里面。
03:47
这个啊,对应这个类里面有没有什么静态方法可以去获取这么一个对象啊,你C,你CTRL加F12可以看到它所有的一个方法,这个方法里面有一个静态的叫create。看到没有,有create方法,那这个create方法呢,两个都是静态的啊,它create方法呢,就可以去创建这么一个builder,它能创建一个builder啊,这个builder啥意思呢?如果有同学学过的话,应该知道这涉及到Java的建造者模式。
04:17
啊,建造者模式。啊,建造者模式,这个建造者模式呢,就好比是工厂里面的设计师啊,他他不是工人啊,他是设计师,为什么这么说呢?你就比方说生产一款手机啊,呃,咱们就说手手机11对吧?啊某品牌的手机11啊呃,那这个手机11你在生产的时候呢,它首先它会有多种颜色。对吧,其次它会有多种内存啊,都是有不同的一个使用的一个方式的,对吧?啊多种颜色多种内存,那我在造这一款手机的时候,我应该使用哪种颜色,哪种内存呢?啊,这种需求呢,你就提给这个builder就可以了啊,提给这个builder就可以了,建造者模式的好处呢,就是先通过创建一个build,然后往这个build里面添加各种定制的需求啊,我想要一个特殊颜色的,我想要一个特殊内存的,你给我加大内存,你给我换一个五彩斑斓的黑这么一种颜色啊都可以,你告诉建造者就行了啊,这是能不能做出来,这就两说了啊。
05:20
提给这个build之后呢,它会把你提的要求都封装进来,然后它在里面会有一个build的方法,这build里面都会有一个build的方法,我们来找一下。Build的方法对吧?在这个build的方法里面,它会把你提的各种需求都当做属性封装到这么一个对象里面啊,其实它的本质干嘛,建造者模式本质干嘛,就是丰富了构造器啊,丰富了构造器以前那种方式,你在你用构造器的形式呢,你写多少构造方法,它就有几种创建方式啊,这种呢,哎,不太够啊,它不太够,你用建造者呢,他一下就把那个构造器给丰富化了啊相当于呢,你以前要写十几个方法,但是用构造器啊,用这个建造者,你你简单设计一个类啊,就能够丰富它的一个构造方式了啊,相对呢,更加好用实用一点啊,创建这个多种多多种类型的这么一个对象啊好,这里呢,我们就知道具体应该怎么使用了啊先。
06:15
我们先写一下注释啊。叫2.1啊,2.1呢,就相当于是啊,创建命名空间描述对吧?创建命名空间描述啊,我们知道了,应该用里面的静态方法叫disc.create,在里面它有一个方法的重载啊,呃,如果你想造一个新的的话呢,你填一个名字,如果你想使用之前的话呢,你填一个当前对象,他还能再进行修改啊,是可以的,他不说了吗?他是一个呃,设计师对吧,你把原来的图纸给他,他修修改改,还能给你一个新的图纸啊,我们这里呢,没有命名空间,你只能给一个新的了,叫three name啊,那我们呢,就把这个name space这个名字告诉他,然后你点Y返回就会得到一个。Builder啊,得到一个builder,这叫获取一个命名空间描述的建造者。
07:06
对吧,获取这么一个建造者,那这建造者的好处是什么呢?我们说了他是一个设计师。2.2啊,这里呢,也可以写出来啊,他是一个设计师啊,那他既然是一个设计师了,我们就可以给他添加需求,就相当于是添加限值,对对吧,哎,给啊命名空间添加需求。啊,添加需求,它是一个设计师嘛,可以给他提要求,怎么提呢?对这个builder写就行了,你点它里面就会有A的configuration添加什么,添加键值,对叫a configuration,它有方法的重载,你可以一次添加一个,你也可以直接给他一个map map里面就有多个键值,对嘛,啊,都是可以的,那这里呢,咱们可以给他添加一个,对吧?啊,既然赶巧了来了,来都来了啊,你来大过年的来都来了,那就填一个吧,填一个user。这里面呢,我们填上我们的。这个名称啊,艾特硅谷对吧?好,这括把它括号掉了啊,再给它加上啊,加一个分号啊好,我们给它添加了一个对应的一个需求,添加完需求之后呢,我们需要添加完这个需求的对应的一个描述啊,对应的一个命名空间描述,那你对这个builder在这个里面去调用点build的方法就可以了,它会自动给我们返回一个对应的一个对象啊,返回一个对象,这就叫建造。
08:28
建造者模式的一个使用嘛,啊,用起来还是比较清晰的啊,就是丰富它的一个构造方法啊。啊,这里呢,就相对应的调用方法就可以实现这么一个对象了,啊在这里它也爆红了啊,也爆红了,这个地方为什么爆红啊,这是我们最开始说的,它也有一个IO exception啊,也有一个ion,这就是我们说的,如果你在第一行代码的时候就抛出这个异常的话,那下面这一行代码也抛了同样的异常,你就看不到了啊,你就看不到了,那现在呢,也是同理,我们最好呢,还是不要去抛这个异常,还等等代码全部写完了再来抛这个异常啊,这就是真的去调用方法对吧?啊叫。
09:05
2.3。哎,使用这个叫BYDR啊,Build go建造。构造吧,构造出啊对应的。添加完。函数的对象。那这下啊完成创建。完成创建好这个方法呢,就会完成创建了啊,然后再接下来呢,第三步不要忘了啊,使用完min之后要记得给它关闭掉啊,虽然是轻量级的,但是我们也不建议啊,你用完之后就把它扔在这儿对吧?啊,记得要把它关闭叫。关闭order me啊叫order me.close关闭就可以了啊,在关闭的时候,我们发现关闭它也有一个异常,这个异常还是。Ioe频看到没有,还是ioe except频啊好,我们同样啊,把这个异常的线给它去掉啊好,到这里呢,我们会发现啊,它一经共有三个地方会抛异常啊,三个地方会抛异常啊,咱们呢,先不管这些异常在实际开发人应该怎么处理啊,咱们先统一呢,把它给抛出去,先来测一下这个方法能不能用啊,先来测一下这个方法好不好用对吧?那在main方法里面呢,我们就可以完成一个对应的测试了啊呃,直接使用静态方法,那写的是静态方法对吧?啊,静态方法叫create name space。
10:24
哎,Correct name space在里面填一下,这地方呢,我们就填一个at硅谷这么一个命名空间啊,填写一个命名空间就叫at硅谷,它会有一个异常啊,我们直接给它抛出去吧,啊在这呢,咱们就懒得去处理了,仅仅是一个测试对吧,写上啊叫测试创建。命名空间啊,你在测试完之后呢,也就是在main方法的最后一定要记得啊,我们的这个h base连接啊,它太重量级了,一定要记得每次使用完h base,在每一个main方法的最后这几个进程要结束了,要记得关闭。
11:01
Me啊,关闭连接啊,关闭HP连接。啊,不要忘了啊,叫connection就还是这个connection啊,第二它里面会有呃。啊,这个或者你使用这个方法啊,我们封装好的方法啊,叫h base connection。Close connection对吧?啊,使用这个方法呢,可能更专业一点些的啊,这里呢,为了演示它不会去抛一场隔断啊,这边可以打一个其他代码对吧。演示一下真实场景啊,我们这里呢,Soot输出一个叫其他代码啊,最好呢,我们上面的东西呢,不要影响到别人对吧?好这里呢,我们来执行啊,来测试一下。他如果能打印出个其他代码呢,说明这一行已经运行完了,对吧,已经到下一行代码了啊,它就没有问题,因为他也没有返回值,如果我直接运行,你也看不到它到底有没有创建好啊。现在肯定还在创建,因为还没有输出其他代码这几行几个字啊。
12:01
还是那个问题,H base的连接呢,是重量级的,对吧,你需要稍微等他一下,好他打印出来其他代码,并且呢,进程已经停掉了,说明他就已经完成这个工作了,那他有没有创建出这个艾特硅谷呢?到命令行里面查一下就可以了,对吧?啊叫list_ame啊,Space执行。好,这里面呢,就会有艾特硅谷对吧?啊,就会有at特硅谷,至于它里面有没有键值,对呢,其这艾特硅这个name space命名空间啊,也有一个对应的描述啊,呃,我们可以来查一下,叫help给你看一下啊。好往上翻,往上翻啊,它在这个name space里面也会有叫describe name space看没也有一个详细描述啊,我们可以复制一下。调用一下这个方法啊。叫嗯。艾特硅谷等引号直行,好,我们可以看到,对吧?如果你要详细描述到里面就会有一个user at硅谷,这哪来的呢?我们给它添加的对不对啊,添加建证其实就添加在这了,你说有什么用呢?就跟你买S数据库里边那个database的描述是一样的,只是为了给人看,没有什么别的实际的一个含义啊。
我来说两句