精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

日韩av新片网| 色综合天天综合网国产成人网| 亚洲 高清 成人 动漫| 日本高清中文字幕二区在线| 日韩av电影天堂| 欧美大尺度激情区在线播放| 久久久久麻豆v国产精华液好用吗| 欧美电影免费观看网站| 亚洲男人的天堂网| 欧美一区激情视频在线观看| 国产成人精品白浆久久69| 美女91精品| 欧美精品在线播放| 九九热免费在线| 久久影院资源站| 欧美军同video69gay| 少妇高潮毛片色欲ava片| 日本中文字幕在线2020| 2021中文字幕一区亚洲| 亚洲最大福利视频| 一级黄色片在线看| 亚洲激情专区| 欧美精品免费在线| 免费在线观看a视频| 日韩深夜影院| 精品国产一区久久| 深夜福利网站在线观看| 国产极品嫩模在线观看91精品| 亚洲成人www| 欧美aaa在线观看| 国产午夜精品一区理论片| 成人性生交大片免费看中文网站| 国产一区视频在线| 真实新婚偷拍xxxxx| 99国产精品99久久久久久粉嫩| 欧美精品免费在线观看| 免费成人美女女在线观看| 综合亚洲色图| 日韩精品一区二区视频| 精品人妻一区二区免费| 国产一区二区三区精品在线观看 | 日本少妇一区| 狠狠躁夜夜躁人人爽天天天天97 | 日日欢夜夜爽一区| 欧美一区二区三区图| 国产做受高潮漫动| 亚洲精品孕妇| 97热精品视频官网| 你懂的国产视频| 亚洲久久一区二区| 亚洲 日韩 国产第一| 国产在线一区视频| 激情欧美丁香| 91成人在线播放| 中文字字幕在线中文| 亚洲欧美成人综合| 日本久久中文字幕| 中文字幕在线日本| 免费久久99精品国产| 成人欧美一区二区三区黑人| 亚洲熟妇av乱码在线观看| 麻豆精品一区二区综合av| 国产精品久久久久久影视| 亚洲熟女乱色一区二区三区久久久| 全部av―极品视觉盛宴亚洲| 国产精品中文久久久久久久| 91麻豆成人精品国产| 日本欧美在线看| 国产在线精品播放| www.com欧美| av电影在线观看完整版一区二区| 久久视频在线观看中文字幕| 国产区视频在线播放| 国产精品乱码久久久久久| 亚洲国产一区二区在线 | 久久久久久一区二区三区 | 欧洲另类一二三四区| 天天色综合社区| 国内不卡的一区二区三区中文字幕 | 99视频在线精品| 欧美一二三四五区| 秋霞影院午夜丰满少妇在线视频| 一区二区三区中文字幕精品精品 | 亚洲国模精品私拍| 熟女高潮一区二区三区| 天天射成人网| 91sa在线看| 曰批又黄又爽免费视频| 丁香天五香天堂综合| 欧美亚洲免费在线| 国产精品实拍| 日韩欧美中文字幕在线观看| 国产乱码一区二区三区四区| 开心激情综合| 久久久999国产| 91精品国产乱码在线观看| 男男视频亚洲欧美| 国产精品一区视频网站| 国产在线日本| 亚洲国产精品一区二区久久恐怖片 | 久久99久久99小草精品免视看| 国产精品乱码一区二区三区| 番号集在线观看| 亚洲线精品一区二区三区八戒| 亚洲国产精品无码av| 亚洲爱爱视频| 亚洲国产一区自拍| 国产va在线播放| 蜜桃视频一区二区| 久热国产精品视频一区二区三区| 秋霞成人影院| 日本久久电影网| 91传媒理伦片在线观看| 无码一区二区三区视频| 日本精品性网站在线观看| 高清毛片aaaaaaaaa片| 国产精品免费av| 欧美色图另类小说| 高清日韩中文字幕| 欧美成人剧情片在线观看| 国产一卡二卡三卡| 99久久777色| 青青草综合在线| 永久免费观看精品视频| 一区二区欧美亚洲| 日本一区二区三区精品| 成人午夜大片免费观看| 青青视频免费在线观看| 素人啪啪色综合| 亚洲欧美在线第一页| 日韩三级视频在线| 成人免费黄色在线| 日产精品久久久久久久蜜臀| 亚洲男女网站| 中文字幕不卡av| 亚洲av无码不卡| 久久久天堂av| 国产超碰在线播放| 欧洲美女日日| 国产精品ⅴa在线观看h| 狠狠色伊人亚洲综合网站l| 欧美性黄网官网| 亚洲欧美视频在线播放| 国产亚洲精品v| 久久免费看av| 日韩av免费| 色偷偷偷亚洲综合网另类| 国产精品国产精品国产| 欧美国产视频在线| 欧美大尺度做爰床戏| 日韩国产一区二区三区| 国产精品视频永久免费播放| 在线免费看黄网站| 欧美日韩第一区日日骚| 最新av电影网站| 国产尤物一区二区| 国产午夜精品视频一区二区三区| 中文字幕视频精品一区二区三区| 欧美高清视频免费观看| 好吊色视频一区二区| 亚洲成年人影院| 国产精品亚洲无码| 美女精品一区二区| 亚洲av首页在线| 久久a级毛片毛片免费观看| 91av在线播放视频| 99se视频在线观看| 制服丝袜亚洲色图| 天堂资源在线播放| 久久奇米777| 手机看片一级片| 欧美日本二区| 久久综合久久久| 欧美风情在线视频| 久久久久久91香蕉国产| 日本中文字幕电影在线观看 | 一二三区视频在线观看| 亚洲黄色成人| 午夜精品电影在线观看| 日韩精品一级| 欧美在线国产精品| 免费a级在线播放| 亚洲国产免费av| 特级西西444www大胆免费看| 少妇精品导航| 在线播放91灌醉迷j高跟美女| 久久综合成人网| 久久婷婷国产综合国色天香| 一级黄色录像在线观看| 亚洲国产欧美国产综合一区| 日韩色妇久久av| 亚洲国产视频二区| 国产精品久久久久久久久久久久久 | 日韩免费不卡视频| 国产精品视频免费看| 无码人妻一区二区三区一| 久久久久久久尹人综合网亚洲| 国产又爽又黄ai换脸| 欧美韩一区二区| 91久热免费在线视频| 日本不卡网站| 久久99久久99精品免观看粉嫩| 国产视频网站在线| 亚洲第一中文字幕| 国产又大又粗又硬| 色综合久久久久久久久| 九九久久免费视频| 成人免费在线播放视频| 精品无码一区二区三区| 国产成人午夜视频| 手机版av在线| 日韩电影在线免费观看| 国产日韩av网站| 女同性一区二区三区人了人一| 日本在线播放不卡| 欧美一区 二区| 成人羞羞视频免费| 不卡精品视频| 国产免费一区二区三区在线观看| 亚洲十八**毛片| 性欧美xxxx| 国产探花视频在线观看| 欧美成人午夜激情视频| 秋霞影院午夜丰满少妇在线视频| 一本久久综合亚洲鲁鲁| 美州a亚洲一视本频v色道| 亚洲国产婷婷香蕉久久久久久 | 欧美日韩伦理一区二区| 日本国产一区二区三区| av资源中文在线| 久久久久久久影院| 黑人玩欧美人三根一起进| 欧美成人精品不卡视频在线观看| 日本欧美在线视频免费观看| 在线观看亚洲视频| 粉嫩av在线播放| 亚洲一级一级97网| 激情小视频在线观看| 亚洲毛片在线看| 蜜桃视频在线观看网站| 国产视频精品久久久| 欧美日韩国产中文字幕在线| 亚洲精品在线不卡| 可以在线观看的av网站| 亚洲人成网站色ww在线| 第一页在线观看| 国产亚洲欧美日韩美女| 国产高清在线| 日韩中文字幕在线看| 欧美成人精品一区二区男人看| 色妞久久福利网| 日本三级在线播放完整版| 俺去啦;欧美日韩| 91福利国产在线观看菠萝蜜| 欧美国产日韩二区| 51漫画成人app入口| 欧美一区二区大胆人体摄影专业网站| 国产不卡网站| 国产精品网址在线| 国产欧美88| 国产欧美日韩一区| 免费一区二区三区视频导航| 亚洲春色在线| 欧美福利在线| 加勒比成人在线| 美日韩精品视频| 青青草原国产在线视频| 国产精品亚洲а∨天堂免在线| 18深夜在线观看免费视频| 成人av手机在线观看| 国产国语性生话播放| 国产欧美日韩视频一区二区 | 精品国产乱码久久久久酒店 | 日本黄色小说视频| 婷婷久久综合九色国产成人| 日韩中文字幕高清| 欧美一区二区在线看| 欧美特级特黄aaaaaa在线看| 亚洲美女激情视频| 黄色精品免费看| 性视频1819p久久| 亚洲精品一区av| 久久国产欧美精品| 五月精品视频| 99热自拍偷拍| 韩日欧美一区二区三区| 国产精品久久久久久久无码| 国产农村妇女精品| 国产一级特黄视频| 欧美综合亚洲图片综合区| 精品久久人妻av中文字幕| 日韩www在线| 成人video亚洲精品| 国产va免费精品高清在线| 精品一级视频| 日韩高清dvd| 影音先锋国产精品| 日韩欧美国产片| 99精品欧美一区二区三区小说| 日本 欧美 国产| 精品久久久久国产| av小说天堂网| 在线电影av不卡网址| 国产va在线视频| 亚洲永久免费观看| 国产一区日韩| 黄色一级片播放| 国产麻豆精品theporn| 日韩一级av毛片| 天天综合天天综合色| 国产ts人妖调教重口男| 在线视频欧美日韩精品| 深夜成人在线| 国产福利一区二区三区在线观看| 青青一区二区三区| 日韩av片在线看| 成人福利视频网站| 男人的天堂久久久| 欧美日本高清视频在线观看| 久草福利在线视频| 97在线视频一区| 91精品国产自产精品男人的天堂 | 国产日韩一区二区| 欧美一区精品| 久久久福利影院| 国产精品嫩草影院av蜜臀| 欧美精品韩国精品| 日韩大陆欧美高清视频区| 天堂成人av| 91精品视频网站| 天天av综合| 久久精品国产露脸对白| 国产精品国产三级国产普通话三级 | 精品国产乱码久久久久久久 | 国产成人精品日本亚洲| 欧美jizz19性欧美| 国产九九九九九| 99久久伊人精品| 91精品国产乱码久久久张津瑜| 精品动漫一区二区三区在线观看| bt在线麻豆视频| 91亚洲永久免费精品| 欧美xxxxx视频| 韩国一区二区在线播放| 亚洲嫩草精品久久| 国产高清在线观看视频| 欧美国产精品日韩| 国产在线播放精品| 亚洲自偷自拍熟女另类| 91免费国产视频网站| 无码人妻丰满熟妇区五十路| 亚洲人在线视频| 精品美女一区| 三级网在线观看| 国产成人av电影在线观看| 豆国产97在线 | 亚洲| 日韩大片免费观看视频播放| 午夜久久中文| 视频一区二区在线| 国产在线视频不卡二| 免费人成在线观看| 亚洲激情视频网| 欧美成a人片在线观看久| 亚洲精品中文字幕在线| 国产自产v一区二区三区c| 九九视频在线免费观看| 日韩精品视频中文在线观看| 成人免费看黄| 亚洲人体一区| 国产成人综合亚洲91猫咪| 亚洲天堂日韩av| 中文综合在线观看| 欧美久久亚洲| 岳毛多又紧做起爽| 国产精品乱码人人做人人爱 | 少妇高潮毛片色欲ava片| 国产日韩av一区二区| 国产又黄又粗又硬| 久久久久久九九九| 精品视频亚洲| 少妇丰满尤物大尺度写真| 欧美日韩在线视频一区| 最新电影电视剧在线观看免费观看| 99re国产| 视频一区国产视频| 妺妺窝人体色www聚色窝仙踪| 日韩久久精品成人| 国产亚洲精aa在线看| 伊人成色综合网| 国产精品久久夜| 香蕉久久一区二区三区| 国产一区私人高清影院| 亚洲深夜激情| h色网站在线观看| 亚洲精品资源在线| 亚洲日本视频在线| 天堂中文视频在线| 黄色成人av在线| 性欧美videos高清hd4k| 日日噜噜噜噜夜夜爽亚洲精品|