00:00
嗯,好,那下边呢,我们来开始这个抽取的一个方式二啊,就是按照我们这个想法,我们层层递进,看看应该怎么去做,哎,下一步的这个抽取,那我们就再去造一个叫MY贝二,那应该是在这个一的基础上再抽啊,所以我们这呢,我把这个一呢,CTRLC直接复制一份。啊,造一个叫MY2啊好听好了,那我们想在它的基础上再抽取,那前面这些呢,已经抽取好的肯定不用动了,那关键呢,就是针对于我们,呃,最后的这个get view这个方法啊,来进行一个。操作了啊,那get view这个方法,我们希望呢,你进行一个再深层次的一个抽取啊,因为你刚才这个抽取的力度不大,所以导致我们这个product这个一的代码呢,还是这里边有点过多。那这时候我们就需要呢,去考虑这个,接着再怎么抽取。啊,再抽取,那你就要回到最初这个盖的方法,到底是想干什么。对吧,嗯,我们说这这个叫就是,呃,主要呢,就是装配数据了啊。
01:04
就是我们刚才在这个这里边呢,写的它的一个作用。嗯,好,呃,具体这个作用知道了,那我们这里边呢,其实主要关心的这个问题就是两个啊,问题一就是我们具体的这个item的。啊,Layout这个布局。啊,是不确定的。那既然不确定,应该是把这个是不是给他暴露出去啊。我们刚才那会儿呢,是直接把这里边直接就是成一个除法,方法有点。他他他叫什么。这个这个抽取的这个太粗了是吧,我们再给它精细化一下啊,精细化一下里边呢,就具体来分一下,看哪些不一样,不一样的就拿出去抽象,那一样的呢就都写到这里边啊,所以呢,这里边主要不一样的呢,其实是两个哈,第一个呢,就是我们这个item这个布局是不一样的,所以这个呢暴露出去啊,那第二个不一样的问题主要是什么呀。
02:10
嗯,布局有了那个数据的话呢,是不是都还行。数据的话呢,我们直接呢,从这个例里边呢,就取其中的一个,这个操作都一样啊,那下一个呢,就是是不是装数据啊,哎,对啊,将集合中指定位置的。啊数据啊装配到,哎,我们这个IT10啊,或者装配到这个item,它本身呢是不确定的。啊,你这个item里边呢,有三项装这个五项,呃,类型又不一样,所以这个装的这个事儿呢又不一样,这是主要两个不同的点。哎,主要两个不同的点,行,那基于这两个不同的点,我们下边来看一下这个get view呢,哎,我们应该怎么去写哈,就是其他一样的呢,我们最好还就都写成一样,比如说呢,哎,我们每次写的时候一上来是不是一般都will后代加。
03:09
啊,那就意味着你一会儿,呃,这个抽取的话呢,像每个都有,那这个就是通用的啊,那VIVO后袋的话呢,我们也可以去造一个。啊,后点。啊,中招一下啊。好,那这个will后呢,我们接着往下写啊,就是我们先就按照我们平时写的这个套路来,当你是一个now的时候,哎,我们马上要做的呢,就是con view呢,需要是不是view.infl了,哎,这里我们说的第一个不确定in一个view吧。哎,那这个呢,我们就是给大家抽象一下啊,哎,对暴露出去这呢,就相当于提供哎具体的一个item layout的这个布局啊。哎,看怎们聊他的这个布局行,那这个可view有了,那你这个holder是不是还得也得造一下啊,New一个啊will orderer,那这个view holder呢,我们说需要跟这个,可view呢,得就是设置一下啊,这个设置我们其实可以呢,这样子来一下啊,在这里边我们整一个构造器。
04:16
哎,构造器里边我们就写一个view的一个view。哎,然后呢,在这里边我们就will.set这个tag啊,直接呢把我们这个this搁进来。哎,在这呢,是就把这个乘六是插进去就可以了。对吧。哎,相当于我们把这个它俩关联这个事呢,写到这个we的构造系统中了啊行,这样的话呢,我们就写好了啊嗯,这个写好以后呢,还有一个else。Else呢?那就是holder,等于嗯,Convert will get talk。那做一个旋转。好的行,下一个先呢,获取几何数据。
05:01
嗯,那我们就拿着咱们前面这个集合啊,List,点我get指定的position。好,这呢,就是我这个记数据啊,这个大家都一样,还这样写,再往下呢,该装配数据了。不一样了吧,啊,那不一样了,那就得是不是又暴露出去啊,那我就只能叫set data啊,就设置这个数据啊,这个呢就返回值就不用写了,这个赛贝塔呢,我们需要两部分东西,第一部分呢,就是你这个集合数据。啊,既得有。再一个呢,就是我得装到哪。是不是我们装的具体的这个可的view当中啊。哎,所以我这儿呢,我这样。哎,把这个可能的view呢看进去,把这个T呢看进去,哎把这个方法呢造一下。那这就是具体装配数据的操作。
06:06
行,这个操作完以后呢,最后我们做一个反馈,Return一下我们的view。哎,就这样的一个方式啊。好了,呃,这样的话呢,我们就写完了,这个写完以后的话呢,我们下边呢,来做一个它的具体的子类啊,这呢,我们同样的拿这个product为例。啊,Product啊,写一个二,哎,让他呢去继承于my base adapt2,同样的还是这个product啊,写out enter。哎,这两个啊,再整一个构造器。行OK了啊,那首先呢,我们来去,呃,初始化一下这个item这个布局的啊,这个比较简单。Item就它。嗯,啊,这个呢,相当于是需要的是一个view啊,CTRLX一下view.inflate这样是吧,嗯,这个时候你要在这写。
07:07
这价钱。这现在还得传一个进来是吧。嗯,传可进来,那这里我就我先这个,我就这样简单处理一下了啊,我直接用它来处理了,然后把它拿过来写个到。这样子啊,或者要不的话呢,就是在刚才这个里边,嗯,调这个方法的时候,你是不是把这个给它传进去。是不是也行?理解吧。嗯,在。在那边弄好。就是我是这个意思,就是我们这呢,你可以还可以怎么着,就我在这儿用的,实际上是这个application是吧,你要觉得用application呢,就觉得不太不太好,那你就这个parent这块,你来一个,嗯,Get一下这个contest嘛。哎,这样子给它传进去,然后这个位置呢,嗯,你就加上一个contest contest这就可以了,然后回到这块的时候呢,这不就有一个。
08:09
Test contest这个位置你就可以直接写contest了。这个时候,Contact就是我们的。是不是may I听见?行,嗯,这样我们就写好了,然后呢,你看一下这个s data啊,S data就我们要装数据啊,从这里边把数据取出来装到它这里面。啊,那我们这呢,你这就成了什么呢?L view点我find BYD了,那r.ID点。嗯,我们那里边儿有这个,还得看一下里边有什么了啊,找一下我们。Item这里边先别着急啊,一会给你有同学可能觉得有点不是那么对劲啊。看这一项。这一项呢,叫P内部。好,那么这就是二点id.P内。
09:03
好,这个呢,我就找到了具体的这个view了,那这个view的话呢,它实际上是一个test view,所以我这再做一个强转。消杀完以后呢,我们再给他呢,去设置它的一个内容,这个内容呢,就是我们这个product里边的这个name。哎,那我们这儿一共是有七个属性啊,那是不是这一下边就得写七个呀。一共七项。对吧,然后呢,我们这个我加上一个log啊。好,这样调一下。啊,那首先呢,来说一下,我这就不写这七个一个写了啊,我就先写了一个啊一个的话呢,那你如果真的更新的话呢,那就是光更新了一下这一项。啊,那我们接下来回到我们最初的这个。Product list里边我们应用一下。
10:02
CTRLC啊,这个呢不是。23。这个它改成二。保存一下啊,那这时候呢,我们运行,那相当于我就目前就光更新这一个数据,看看能不能行。啊,广根就这一个啊跑一下。来看这个。出来了啊,哎,我们呢,因为你光更新了一个,所以你主要就光看这个就行了,其他的一些是不是我们没有更新啊,哎,那你要把这剩下这六个都写上,那是不是也是没有问题的呀,没问题哈,嗯,但是呢,我们为啥没有写完啊,就是说这种方式呢不太好,虽然说是抽取了,而且呢,确实的话呢,应该说比第一种方式是不抽取的这个力度要大一些。
11:11
啊,这个get view里边呢,你看我们已经写了一些逻辑了,不像你第一种方式这直接里边就整个呢封装成一个抽象方法了,我们现在在这个子类里边呢,我们写的这个逻辑呢,就更简洁一些了,所以抽取的力度呢,是比第一种方式呢要更大一些。比第一种,但是的话呢,你这种方式呢,还有一个弊端,相对于第一种。弊端是什么?或者说你这个方式呢。嗯,哪不好。没有后代怎么了?看这。像这块。我们当时讲AC的优化。
12:03
然后说到了主要就是针对于get view的优化。嗯,Get view这句话呢,我们提到了,说是不是要复用客户的view啊。这一段用了吧,用了咱们不是自己呢,让它是是不是直接我们自己用的,然后呢,其他情况下是不是没有牛啊,哎,通过这跟这体现的就是convert view的一个服用。啊,那另外呢,我们还提到了就是we holder。用护垫使用的一个意义是什么?哎,减少是不是find view by ID的一个次数啊?哎,好,那我们现在呢,就让他们关联一下,你造过几次,我呢就也造几次,咱们呢,就是造的时候呢,关联一下,其他的那个时候呢,就不要再关联了,就是find view by ID呢就尽可能的少掉了,但是目前这个情况你看。我这个赛呢。我是不是写在if else的外面,那意味着就是你每出现一项,这个是不是都会去掉。
13:01
这话都会去调,你这个里边呢,是不是就写了很多的范,600里就一套吧,是不是就七个呀。然后我们这里边儿一共是不是有十个item啊,那你说这个操作是不是这个方法,它是不是就如果我们从上滑到最后,它是不是就要掉十次,十次一个里边呢,是有七个,相当于我们目前这个抽取方式二,虽然抽取的力度更大,但是呢,相当于你根本就没有用到VIVO后。也没有减少范围D的次数,对吧。能理解不?啊,应该可以啊,啊,那就相当于我们这个抽取方式二呢,是有弊端的,所以我们在这儿可以描述一下,第一种方式呢,是没有抽取啊,这种方式呢,我们就是啊抽取了啊,但是这个抽取力度比较小。嗯,然后这个呢,是也抽取了啊,但是呢啊没有,相当于是使用这个will hold。
14:07
那很显然这种方式的话呢,你这个优化的不够好。哎,该都有这个方法。优化的不够。那如果说目前就这三种方式啊,你选哪一种。哎,对,你肯定选第二种嘛,香胶第一种我们抽取了啊,当然比第三种还好,虽然说呢,这种方式呢,优化的抽取的更好,但是呢,你这明显优化的更重要啊,所以说呢,诶,如果我们选的话呢,可以选择第二种。哎,可以作为选择。啊,那下一个呢,抽取方式,那我们就要想啊,说能不能既啊有第二种方式的优点,又有第三种方式的优点,那我们说就看你的这个。怎么写啊写啊,哎,我们就会出现一个方式四。
15:03
啊,就是同时呢也抽取了啊,然后抽取的力度呢还比较大,同时的话呢,也能够起在有必要的这个优化。啊,这呢,其实是一个最好的一个方式。哎,这个呢,应该怎么写,先把这个题目。
我来说两句