android:Java之策略模式

發(fā)文初衷:為什么突發(fā)奇想要對Java的設(shè)計模式做研究,首先由于本人以前對設(shè)計模式概念比較模糊,自從本人改過自新之后,決定對以前所以模棱兩可的東西,都會進(jìn)行一一的系統(tǒng)詳細(xì)的學(xué)習(xí)。正巧公司最近項目當(dāng)中遇到了設(shè)計模式中的策略模式,所以本人寫下自己的心得的思考。

個人觀點:I Think ?所有的設(shè)計模式都在實際的項目開發(fā)中由大牛么,通過不斷的向上抽取,最終得到一種比較好的方式來使我們的開發(fā)更加的方便。

模式的應(yīng)用場景:百貨商場的收銀系統(tǒng),由于商場都會有自己的會員制度,所以每一件商品針對不同的用戶群體都會有相應(yīng)的價格。本文舉例的角色用戶:普通用戶,會員,超級會員,在針對每一個商品的計算方式都大不相同,也許有人會說,那這個還不簡單,編寫一個函數(shù),通過參數(shù)傳遞的不同做不同的計算。你可能會這樣去做,但是在實際的業(yè)務(wù)邏輯當(dāng)中,也許上面的三個角色并不是你想想的只是簡單的計算而已。也許會有給會員積分,也許會有將不同的用戶群體以不同的方式進(jìn)行存儲以便以后,針對不同用戶進(jìn)行精準(zhǔn)推送。當(dāng)然這些問題都可以通過最基本的 ?i f ----else ? 的方式進(jìn)行解決,但是想過沒有如果另外一個人來對你的業(yè)務(wù)進(jìn)行維護。別人可能看的都會比較頭大。那么策略模式是一種很好解決i f ---else這種傳統(tǒng)的方式。好不多說,看代碼

這是定義的一個接口,里面只是一個簡單的計算方法,但是在實際的業(yè)務(wù)邏輯當(dāng)中會有其他的操作,具體應(yīng)按照業(yè)務(wù)邏輯而定

下面分別被:普通用戶、會員、超級會員繼承

這樣當(dāng)所有的業(yè)務(wù)邏輯變的復(fù)雜的時候,我們只需要在相應(yīng)的角色用戶中進(jìn)行相應(yīng)的修改,或者添加相應(yīng)的業(yè)務(wù)邏輯,那么當(dāng)下一個人接收你的項目的時候,別人就能會快的熟悉你的代碼邏輯以及項目邏輯。讓別人快速融入到項目當(dāng)中。

下面是用戶調(diào)用:相關(guān)類

注:本人是從事android開發(fā),可能有些控件問題只有相應(yīng)的android coder才能看懂,暫時沒有用純java的方式,在此非常抱歉,

總結(jié):策略模式其實就是if --else的高度抽象升級(個人理解),作為一名有理想的coder,總是會希望自己的東西能夠的到別人的認(rèn)可和被別人快速理解,策略模式是其中一種能夠快速讓人理解的模式之一。在實際的項目開發(fā)中希望大家能根據(jù)項目需求,合理的選擇好的方式。不管對自己還是他人都是一個幫助和成長,有不同理解的coder希望能聽到你們的留言,本人會以最快的方式和大家討論。最后,喜歡的人,留下你們的點贊,不喜勿噴,謝謝

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容