精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

忍不了,客戶讓我在一個接口里兼容多種業務邏輯

開發
所謂的單一職責的軟件設計模式并不是絕對的,我們會根據業務的需求形態做出動態調整。

故事

小貓的風波已經過去了,這幾天,小貓在安安心心地擼著系統現狀方案,準備著下次月會的分享。

這天,原本靜謐而又和諧的辦公室卻被開放平臺老六抱怨聲打破了。

“不改,別給我打電話了!說幾遍都沒用。這是一個研發的底線.....”

沒過一會,產品老汪擔心老六對其"對臉開大",孫子似地提著杯咖啡找到了老六。老汪是明事理的產品經理,為人處事兒這方面沒得說。

“這事兒,我也為難,兄弟,幫幫忙,來喝杯咖啡解解乏。我也知道這種客戶很難搞,但是我們是乙方,沒辦法,這年頭大環境擺在這里,賺錢不容易,大家互相體諒一下?!?/p>

老六接過老汪的咖啡,氣呼呼地抿了一口。

“上次發布商品的時候讓我把修改商品屬性和新增商品信息放到一個接口也就算了,這次還讓我干脆把上架到貨架直接包到一起?那后面我們這接口還咋維護了?后面是不是把商品添加到活動中也往這一個接口上堆???你讓我到后面咋維護么?他們公司的lowb研發懂不懂軟件設計原則啊......”

產品老汪在旁邊連連點頭,"兄弟,消消氣,消消氣"。

“要不這樣吧,咱們拉上對面研發一起聊聊吧,看看雙方是否都可以讓讓步......”。

于是老汪和老六一起來到一間會議室,約客戶開始了在線會議。

單一職責原則

大家有沒有遇到老六一樣的遭遇。由于業務要求,接口或者某個模塊中耦合了太多可能不相干的事情。在這里你們是如何處理的呢?關于這點咱們要引出單一職責原則這樣一個軟件設計原則。

對于單一職責原則,官方術語:單一職責原則,英文縮寫SRP,全稱Single Responsibility Principle。There should never be more than one reason for a class to change。一個類或模塊應該有且只有一個改變的原因。如果一個類擁有多個職責,這些職責之間的耦合會導致系統變得不穩定和難以維護。

在OOP里面,高內聚、低耦合是軟件設計追求的目標,而單一職責原則可以看做是高內聚、低耦合的引申,將職責定義為引起變化的原因,以提高內聚性,以此來減少引起變化的原因。職責過多,可能引起變化的原因就越多,這將是導致職責依賴,相互之間就產生影響,從而極大的損傷其內聚性和耦合度。單一職責通常意味著單一的功能,因此不要為類實現過多的功能點,以保證實體只有一個引起它變化的原因。

可見無論從官方定義,還是對“單一職責”名稱的解釋,都能很好的理解單一職責原則的意義。其實在軟件設計中,要真正用好單一職責原則并不簡單。

老貓覺得如果需要遵循這樣的原則,最關鍵的地方還是在于職責的劃分。不過說到這個職責劃分又是比較偏向于業務性質的,其和產品需求是分不開關系的。咱們就拿老六遇到的這個事情來分析一下。

一個發布商品的例子

說明:下面demo的表現形式,咱們都會用到類圖的方式,關于類圖的相關知識點,大家有興趣可以看這里“類圖知識點”。

第一版

咱們一起看一下這個例子,如下圖:

接口

上面的圖中,我們看到了有一個發布商品的接口類以及實現。在其中,我們看到其中包含了發布商品的基礎信息,發布圖片信息,發布規格信息,將商品加入商品池,將商品加入售貨架,將商品加入某個活動。

我們一起來看一下上述的設計是否存在問題?很多時候其實是有爭議的。

單一職責原則要求一個接口或類只有一個原因引起變化,也就是一個接口或類只有一個職責,它就負責一件事情,原則上來說,單純從客戶角度,如果能保證客戶后續需求不會變更,以商品發布作為顆粒度,那么它是合理的。因為業務上已經約定好,里面有商品屬性信息維護,有商品行為信息維護。如果沒有新的業務概念提出來,頂多后續內部改造的也就是屬性變更以及上下架和商品池維護變更。這種角度來說是合理的。

但是這種不變更的保證誰能擔保呢?另外接口也不是針對這一家客戶開放的,當然考慮通用性。

第二版

這不沒多久業務又接了一家新客戶,他們的要求是發布商品就是商品信息的發布。剩余行為無需做強綁定,上下架行為由對方運營人員選擇性執行,沒必要新品一發就上架。那現在的這套就打又破了之前的單一原則。因為由于業務的要求,咱們要將行為拆分成下面這種模式:

第一次拆分

上面的業務看起來更加清晰一些,咱們把屬性同步設置單獨抽離,針對操作商品的行為也單獨封裝為另外一個行為接口。系統功能可拓展,接口可復用的角度來說,無論是第一個版本還是第二個版本,看起來都比較適用。這么一來,看起來兩個客戶的業務都遵循了單一職責的原則。雖然這種方案會引來第一個客戶的研發的不滿,因為對于他們來說可能會調用兩次(當然我們也可以通過門面模式將其整合,當然這是后話),但是站在系統本身的設計角度來說,是比較合理的。但是這樣的一個抽取方式真的夠了么?

第三版

又來了一家客戶,由于對方公司有自己的運營想法,對方不希望用我們的活動,他們希望有自己的活動,并且需要我們給其單獨定制,那么此時咱們又發現,單一職責的這個設計原則又被打破了,因為我們需要針對活動去做定制,為了遵循職責單一原則,所以這時候需要我們將活動行為單獨剝離。然后就有了下面這樣的情況。

第三次拆分

這次的接口看起來更加靈活,滿足單一模式的同時,滿足了以上所有的業務。但是這就夠了么?

顯然不夠,我們還是會遇到各種業務需求的變動,但是上述的抽取在當前的業務下面看起來是比較適用的。能夠cover住大部分的場景了。對于后續的業務拓展也比較友好。

總結

上述的例子比較極端,老貓其實主要想和大家一件事情,所謂的單一職責的軟件設計模式并不是絕對的,我們會根據業務的需求形態做出動態調整。如何遵循好單一職責的設計原則,其實還是需要我們能夠對業務有一個比較精準的領域劃分。小伙伴們,你們覺得呢?

責任編輯:趙寧寧 來源: 程序員老貓
相關推薦

2021-02-02 05:41:16

底層設計頂層

2013-05-13 10:24:44

谷歌開發團隊開發管理

2017-09-13 14:38:55

USB散熱器機箱

2022-05-31 08:35:05

RocketMQACK客戶端

2022-02-22 20:35:22

公鑰私鑰數據

2024-02-26 07:51:08

業務系統迭代

2024-01-22 11:06:47

系統后端開發

2016-12-14 10:00:44

數據結構編譯器

2018-06-11 17:31:00

俄羅斯P20手機

2023-10-20 09:04:08

JavaScript語言Java

2021-07-02 20:46:06

Go接口動態

2020-03-03 07:59:29

設計秒殺系統

2023-09-06 13:20:00

適配器模式兼容性

2022-08-26 05:47:40

首席信息官CIO保險

2022-03-07 05:53:41

線程CPU代碼

2021-04-22 07:47:47

JavaJDKMYSQL

2019-09-18 09:41:25

億級流量網站

2020-08-04 08:44:08

HashCode

2022-11-30 09:18:51

JavaMyBatisMQ

2020-06-08 08:20:11

Redis高可用集群
點贊
收藏

51CTO技術棧公眾號

97色在线观看| 亚洲精品国产精品乱码不99| 日本精品视频在线播放| 日韩精品电影一区二区| 男女羞羞在线观看| 成人午夜视频在线观看| 欧美极品欧美精品欧美视频 | 好吊色欧美一区二区三区 | 国产日韩中文字幕| 欧美成人免费看| 在线免费三级电影网站| 中文字幕一区二区三区蜜月| 国产精品12| 波多野结衣一区二区在线| 日韩大片在线播放| 精品国产乱码久久久久久免费| 欧美三级一级片| 久久精品视频免费看| 高清日韩电视剧大全免费| 欧美黄色www| 国产综合精品久久久久成人av| 美女精品久久| 亚洲综合色噜噜狠狠| 日韩三级电影| 国产成人三级一区二区在线观看一 | 在线亚洲激情| 最新的欧美黄色| 成年人性生活视频| 91天天综合| 亚洲一二三区在线观看| 日韩欧美国产二区| 天堂在线中文网| 免费成人在线观看视频| 91av成人在线| 青青草手机在线观看| 国产一区二区观看| 日韩精品在线一区| 欧美日韩视频免费在线观看| 熟妇高潮一区二区三区| 国产乱码精品一区二区三| 国产第一区电影| 亚欧视频在线观看| 欧美激情综合色综合啪啪| 视频在线一区二区| 性欧美一区二区| av不卡一区| 欧美一级日韩一级| 日本美女视频一区| 日韩精品一区二区三区| 欧美日韩精品国产| 女人帮男人橹视频播放| 精品亚洲综合| 精品午夜久久福利影院| 国产精品扒开腿做爽爽爽视频| 三级黄色在线视频| 欧美1区2区| 久久在线视频在线| 国产激情久久久久| 国产性猛交96| 亚洲国产欧美国产第一区| 欧美高清你懂得| 不卡的在线视频| 国产原创一区| 欧美日韩国产美| jizzzz日本| 深夜福利亚洲| 51精品视频一区二区三区| 男生操女生视频在线观看| 日韩毛片网站| 在线成人小视频| 国产精品嫩草影视| 一区二区三区免费在线看| 欧美成人在线直播| 日韩精品视频一区二区| 日本中文字幕在线一区| 亚洲欧美一区二区三区在线| 亚洲熟妇一区二区三区| jiujiure精品视频播放| 中文字幕亚洲图片| 欧美激情 一区| 神马久久一区二区三区| 一本一道久久a久久精品逆3p| a级一a一级在线观看| 亚洲婷婷伊人| 色哟哟网站入口亚洲精品| 农村寡妇一区二区三区| 欧美xxxxx少妇| 超碰在线一区| 日韩av在线网站| 亚洲观看黄色网| 久久av中文| 国产午夜精品全部视频播放| 91麻豆精品久久毛片一级| 一区二区三区在线| 97香蕉久久超级碰碰高清版| 日本精品入口免费视频| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产成人激情视频| av免费观看网址| 91丨九色porny丨蝌蚪| 久久99影院| 免费高清完整在线观看| 亚洲一区二区美女| 成人性免费视频| 日韩免费小视频| 欧美一区二区美女| 黄色工厂在线观看| 亚洲一区 二区 三区| 97视频色精品| 国产又粗又长视频| 91天堂素人约啪| 日韩欧美在线一区二区| 国产美女一区视频| 欧美日韩亚洲一区二区| 国产成人福利视频| 91传媒理伦片在线观看| 嫩草一区二区三区| 俺去亚洲欧洲欧美日韩| 天天操夜夜操视频| 国产一区二区成人久久免费影院 | 中文字幕在线播放不卡| 丁香一区二区三区| 亚洲免费久久| 福利在线导航136| 欧美日韩精品一区二区天天拍小说| 成人性生交视频免费观看| 亚洲小说图片| 97视频免费在线观看| a级片在线免费看| 亚洲国产精品ⅴa在线观看| 久久久久久www| 欧美国产亚洲精品| 中文字幕亚洲欧美日韩在线不卡| 伊人手机在线视频| 成人av在线影院| 日本美女爱爱视频| 78精品国产综合久久香蕉| 日韩av网站导航| 久久精品人妻一区二区三区| 免费欧美日韩国产三级电影| 欧美一区二区高清在线观看| 国产羞羞视频在线播放| 日韩一级视频免费观看在线| 熟女少妇a性色生活片毛片| 丝袜美腿亚洲一区二区图片| 国产精品三区在线| 久久五月精品中文字幕| 欧美日韩国产首页| 91成年人网站| 亚洲影院免费| 久久五月天婷婷| 欧亚在线中文字幕免费| 亚洲第一精品久久忘忧草社区| 秋霞网一区二区三区| 日韩精品欧美成人高清一区二区| 黑人另类av| 羞羞视频在线观看免费| 在线精品国精品国产尤物884a | 不卡的av电影在线观看| 日韩黄色片在线| 91麻豆精品| 欧美美女18p| 午夜精品一区二区三| 亚洲一区在线观看网站| 国产一线在线观看| av成人天堂| 免费久久久一本精品久久区| 日本在线视频中文有码| 欧美成人一级视频| 日产精品久久久久| 99久久精品国产观看| 91成人在线观看喷潮教学| 啪啪激情综合网| 日本精品久久中文字幕佐佐木| 福利在线视频导航| 欧美日韩国产综合久久| 刘亦菲国产毛片bd| 国产精品影视天天线| 日本免费a视频| 国产成人av毛片| 97国产精品人人爽人人做| 天堂中文在线8| 91国产成人在线| 神马久久久久久久久久久| 久久99国产乱子伦精品免费| www.亚洲成人网| 国产调教精品| 国产精品成人va在线观看| 欧美jizzhd欧美| 91精品国产综合久久福利| 国产一二三区精品| 成人午夜av影视| 亚洲五码在线观看视频| 91蜜桃臀久久一区二区| 97av在线视频| 在线观看完整版免费| 日韩三级高清在线| 国产成人精品网| 国产精品久久久久一区二区三区| 中文在线字幕观看| 久久精品三级| 日日噜噜夜夜狠狠久久丁香五月| 日韩欧美四区| 91精品美女在线| 1234区中文字幕在线观看| 亚洲最新av网址| 亚洲精品国产av| 亚洲午夜国产一区99re久久| 夫妇露脸对白88av| caoporm超碰国产精品| 中文字幕一区二区三区四区在线视频 | 欧美色图12p| 国产午夜精品无码| 中文字幕一区二区不卡| 玖玖爱在线观看| 黄色精品一二区| 精品视频免费在线播放| 国产精品一在线观看| 97中文在线| 欧美美女福利视频| 日本视频久久久| 不卡一本毛片| 爱福利视频一区| 国产三级在线免费| 亚洲加勒比久久88色综合| 亚洲一级片免费看| 精品人伦一区二区三区蜜桃网站| 亚洲不卡在线播放| 国产精品午夜春色av| 日本网站在线看| 日本aⅴ亚洲精品中文乱码| 人妻夜夜添夜夜无码av| 日韩中字在线| 日韩欧美在线电影| 亚洲va久久| 国产日韩精品久久| 亚洲色图综合| 538国产精品一区二区免费视频 | 亚洲视频999| 手机av免费在线观看| 精品国产伦一区二区三区免费| 国产又粗又黄视频| 欧美日韩视频第一区| 最近国语视频在线观看免费播放| 天天av天天翘天天综合网色鬼国产 | 久久99热精品这里久久精品| 日本三级视频在线观看| 一本大道久久加勒比香蕉| 天天操天天干天天爽| 亚洲成人av片在线观看| 肥臀熟女一区二区三区| 日韩精品综合一本久道在线视频| 国产精品视频a| 精品视频全国免费看| 亚洲天堂男人av| 香蕉成人伊视频在线观看| 国产 日韩 欧美 成人| 亚洲午夜久久久| 免看一级a毛片一片成人不卡| 亚洲日穴在线视频| 五月天丁香激情| 一区二区理论电影在线观看| 久久国产精品波多野结衣| 亚洲综合另类小说| 日本三级黄色大片| 精品欧美aⅴ在线网站| 在线观看日本视频| 大桥未久av一区二区三区| 在线能看的av| 色天天综合久久久久综合片| 国产免费a视频| 欧美美女激情18p| 国产jzjzjz丝袜老师水多| 精品美女一区二区| 朝桐光av在线一区二区三区| 亚洲国产精品电影| 免费a在线观看| 色偷偷av一区二区三区| av片在线观看免费| 91精品国产沙发| 国产黄色一区| av一区二区三区四区电影| 久久97精品| 视频一区视频二区视频| 亚洲有吗中文字幕| 男女啪啪免费视频网站| 久热综合在线亚洲精品| 日韩精品视频一区二区在线观看| 秋霞电影网一区二区| 久久精品网站视频| 免费一级欧美片在线观看| 一级日本黄色片| 99久久99久久精品国产片果冻| 天天摸天天舔天天操| 成人免费av资源| 亚洲av无码一区二区三区人| 亚洲人成在线播放网站岛国 | 色综合夜色一区| 艳妇乳肉豪妇荡乳av| 欧美成人高清电影在线| 免费黄色片在线观看| 精品国产自在精品国产浪潮| 都市激情久久综合| 国产精品综合网站| 福利片在线一区二区| 久久久一本精品99久久精品| 亚州综合一区| 欧美日韩一区在线观看视频| 欧美 日韩 国产一区二区在线视频| 欧美日韩在线视频一区二区三区| 视频一区中文字幕| 性活交片大全免费看| 成人黄色免费网| 色呦呦国产精品| 丰满人妻一区二区三区免费视频| 亚洲欧美三级在线| 国产精品蜜臀| 国产日韩欧美在线| 亚洲妇女av| 日韩极品视频在线观看 | 久久婷婷中文字幕| 国产清纯在线一区二区www| 国产中文字字幕乱码无限| 欧美日韩久久不卡| 黄色小视频在线观看| 在线精品视频视频中文字幕| 日韩欧美一起| 成人国产在线激情| 国产精品调教视频| 黄色网zhan| 国产偷自视频区视频一区二区| 一级淫片在线观看| 中文字幕第一区第二区| 亚洲毛片一区二区三区| 亚洲激情久久久| xxx在线免费观看| 不卡视频一区| 一区二区三区四区在线观看国产日韩| 五月婷婷狠狠操| 91免费看`日韩一区二区| 国产精品成人久久| 精品国产一区二区三区久久影院 | 国产一级片免费在线观看| 精品99一区二区三区| 国产黄色在线免费观看| 国产精品久久久一区| 精品视频免费| 欧美黄色免费影院| 91视频xxxx| 精品无码一区二区三区电影桃花| 欧美一二三在线| 精品孕妇一区二区三区| 成人a视频在线观看| 欧美黄色录像| 欧美网站免费观看| 91蝌蚪porny九色| 中文字幕亚洲乱码熟女1区2区| 精品福利一区二区三区免费视频| 操你啦视频在线| 国产精品影院在线观看| 欧美理论视频| 国产一区二区视频免费在线观看| 不卡一区中文字幕| 日本一二三区视频| 欧美va日韩va| 黄色软件视频在线观看| 蜜桃精品久久久久久久免费影院| 在线视频精品| 免费看黄色的视频| 欧美日韩一区久久| 欧美精品色婷婷五月综合| 久久精品麻豆| 日本精品一二三| 精品电影在线观看| 三级在线播放| 国产精品免费视频xxxx| 亚洲成人免费| 中文字幕在线永久| 色999日韩国产欧美一区二区| 8888四色奇米在线观看| 91九色单男在线观看| 激情欧美丁香| 国产十八熟妇av成人一区| 一本久道久久综合中文字幕 | 91免费国产在线观看| 精人妻无码一区二区三区| 精品国偷自产在线| 牛牛影视久久网| 亚洲无吗一区二区三区| 亚洲精品视频在线| 色婷婷视频在线| 国产精品高潮在线| 亚洲欧美文学| 一道本在线观看| 欧美日韩在线观看一区二区| free性欧美hd另类精品| 国产精品国产三级国产专区53 | 欧美激情成人在线视频| 亚洲天堂日韩在线| 日本特黄在线观看|