第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

這是一種策略模式還是只是一種回調(diào)?

這是一種策略模式還是只是一種回調(diào)?

www說 2021-09-15 16:08:10
我正在閱讀SOLID's Open/Closed Principle今天,我記得的第一個(gè)例子是Android支持庫中的ViewDragHelper類。以下是班級(jí)詳情:// allowing a user to drag and reposition viewspublic class ViewDragHelper {    private final Callback mCallback;    public static ViewDragHelper create(..., Callback cb)    public abstract static class Callback {        public void onViewPositionChanged(View changedView, int left, int top, int dx, int dy) { }        public int getViewHorizontalDragRange(View child) {            return 0;        }        public abstract boolean tryCaptureView(View child, int pointerId);        public int clampViewPositionHorizontal(View child, int left, int dx) {            return 0;        }    }}我想弄清楚它是否是strategy pattern. 其實(shí)好像是這樣。有Context(ViewDragHelper類)和Strategy抽象(Callback類)。但是有兩點(diǎn):該策略的具體實(shí)施委托給圖書館的最終用戶。策略實(shí)現(xiàn)的行為會(huì)影響Context(您可以在tryCaptureView方法中鉗制視圖位置或禁止拖動(dòng)操作),而在Strategy pattern描述中Strategy似乎不會(huì)對(duì)Context(即僅產(chǎn)生或消耗一些數(shù)據(jù))產(chǎn)生任何影響。這是一個(gè)Strategy或其他一些模式還是只是這樣一個(gè)常見概念的實(shí)現(xiàn)Callback?
查看完整描述

1 回答

?
郎朗坤

TA貢獻(xiàn)1921條經(jīng)驗(yàn) 獲得超9個(gè)贊

這是一個(gè)Strategy或其他一些模式還是只是這樣一個(gè)常見概念的實(shí)現(xiàn)Callback?

不,它不是經(jīng)典定義中的Strategy Pattern ,而是 Strategy 和Observer Pattern兩者的組合。ViewDragHelper的具有行為改變CallbackS'getViewHorizontalDragRange()clampViewPositionHorizontal()實(shí)現(xiàn)(策略模式)。并通過和實(shí)現(xiàn)(觀察者模式)ViewDragHelper通知 aCallback的實(shí)例有關(guān)ViewDragHelper的當(dāng)前狀態(tài)。onViewPositionChanged()tryCaptureView()


查看完整回答
反對(duì) 回復(fù) 2021-09-15
  • 1 回答
  • 0 關(guān)注
  • 243 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)