Android造輪子必須了解的建築者模式

2021-07-13 01:15:39 字數 2261 閱讀 4082

1、雜談

本文簡單的說一下builder模式在android開發中的運用。。才開始接觸各種設計模式,有什麼不對的地方望指正

2.builder模式的使用場景

class aparams

//get和set方法

public string getname()

public aparams setname(string name)

}class a

void sayaname()

public static class builder

public builder setname(string name)

public a create()

}}

大體有有三個類:

再看動畫的實現

propertyvaluesholder fadeanim = propertyvaluesholder.offloat("alpha", fromalpha, toalpha);

propertyvaluesholder transanim = propertyvaluesholder.offloat("y", -mdistance);

propertyvaluesholder scalexanim = propertyvaluesholder.offloat("scalex", fromscale, toscale);

propertyvaluesholder scaleyanim = propertyvaluesholder.offloat("scaley", fromscale, toscale);

valueanimator animator = objectanimator.ofpropertyvaluesholder(this, fadeanim, transanim, scalexanim, scaleyanim);

可以看到有四個動畫,設計到的變數有fromalpha,toalpha,mdistance,fromscale,toscale

public  class heartparams 

//get和set方法

}

heartview

public class heartview extends view 

//show on view

public heartview showonview(view view)

@override

protected void ondraw(canvas canvas)

//create animator

private valueanimator createanimator()

@override

protected void onanimationstart()

manim.start();

}public static class builder

//viewsize,default 2

public builder setsize(int size)

//anim duration

public builder setduration(int duration)

//省略。。。

public heartview create()

}}

4.實際使用

heartview mheartview = new heartview.builder(mainactivity.this)

.setcolor(viewcolor) //顏色,default red

.setdistance(distance) //向上移動距離,default 300

.setsize(viewsize) //view大小,default 2

.settransalpha(1.0f, 0.0f) //透明度變化,default 1.0f 0.0f

.settransscale(0.0f, 1.0f) //大小變化,default 0.0f 1.0f

.setduration(2000) //動畫時長

.create()

.showonview(v);

前端值得造的輪子

ui 輪子 輪播 tab 懶載入 照著餓了麼ui庫 bootstrap 挨個實現就好。做這種輪子比較考驗 css 功力,你需要用盡量少的 適應盡量多的場景。流行 ui 模式的實現瀑布流 視差滾動 fullpage等。原理簡單又炫酷,何樂不為。dom 操作的輪子 實現得最好的當然就是 jquery。由...

該不該造自己的輪子?

你在學習和寫 的過程中一定聽過這個說法 不要重複造輪子,使用現成的類庫就好。一般知名的類庫都是大公司開發並維護的,正確性與效能都 自己再重新開發乙個相同功能的類庫,消耗時間 消耗精力 大概率做的還不如別人做的好。我平時寫文章時,也經常會遇到好的專欄與書籍,感覺已經有這麼多 這麼好的資料,這些就是好的...

造輪子之常用函式的封裝

常用函式的封裝 時間操作常用函式 幫助類定義 字串操作封裝class yr common 實現string yr common trim const string sstr,const string s,bool bchar string yr common trimleft const strin...