日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

朝着理想坚实迈进_坚实原则:单一责任原则

發(fā)布時(shí)間:2023/12/3 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 朝着理想坚实迈进_坚实原则:单一责任原则 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

朝著理想堅(jiān)實(shí)邁進(jìn)

單一責(zé)任原則是首字母縮寫(xiě)詞的第一原則。

“班級(jí)應(yīng)該只有一個(gè)改變的理由。”

每個(gè)模塊或類都應(yīng)對(duì)軟件提供的功能的單個(gè)部分負(fù)責(zé),并且該責(zé)任應(yīng)由類完全封裝。

例如,想象一下導(dǎo)航軟件的場(chǎng)景。
我們根據(jù)給定的方向(北,南,西,東)改變了位置。

Position類包含有關(guān)x和y軸位置的值。

package com.gkatzioura.solid.single;public class Position {private Integer xAxis;private Integer yAxis;public Position(Integer xAxis, Integer yAxis) {this.xAxis = xAxis;this.yAxis = yAxis;}public Integer getxAxis() {return xAxis;}public void setxAxis(Integer xAxis) {this.xAxis = xAxis;}public Integer getyAxis() {return yAxis;}public void setyAxis(Integer yAxis) {this.yAxis = yAxis;} }

這個(gè)方向是一個(gè)枚舉,代表朝北,向東,向南和向西的方向。

package com.gkatzioura.solid.single;public enum Direction {N,W,S,E }

最后有一個(gè)Navigator類,負(fù)責(zé)根據(jù)方向和位置的變化進(jìn)行導(dǎo)航。

public class Navigator {public Position navigate(Position position, Direction direction) {....}}

為了正確導(dǎo)航,導(dǎo)航器應(yīng)根據(jù)方向確定下一個(gè)位置。 同樣,導(dǎo)航器應(yīng)在值小于0的情況下固定位置。

public class Navigator {public Position navigate(Position position, Direction direction) {Position nextPosition = resolve(position,direction);Position fixedPosition =fix(nextPosition);return fixedPosition;}public Position resolve(Position position,Direction direction) {switch (direction) {case N:return new Position(position.getxAxis(),position.getyAxis()+1);case S:return new Position(position.getxAxis(),position.getyAxis()-1);case W:return new Position(position.getxAxis()-1,position.getyAxis());case E:return new Position(position.getxAxis()+1,position.getyAxis());default:throw new IllegalArgumentException();}}public Position fix(Position position) {return new Position(position.getxAxis()<0?0:position.getxAxis(),position.getyAxis()<0?0:position.getyAxis());}}

這種方法的問(wèn)題在于,如果位置有效性標(biāo)準(zhǔn)發(fā)生更改,我們必須更改Navigator類。 位置移動(dòng)機(jī)構(gòu)變更的情況也相同。 導(dǎo)航器不僅要導(dǎo)航,還要解決下一個(gè)位置并確定新位置。

不違反單一職責(zé)原則的方法是創(chuàng)建一個(gè)將解決下一個(gè)職位的類,并負(fù)責(zé)確定新職位。

NextPositionResolver類將根據(jù)給定的方向解析下一個(gè)位置。

package com.gkatzioura.solid.single;public class NextPositionResolver {public Position resolve(Position position,Direction direction) {switch (direction) {case N:return new Position(position.getxAxis(),position.getyAxis()+1);case S:return new Position(position.getxAxis(),position.getyAxis()-1);case W:return new Position(position.getxAxis()-1,position.getyAxis());case E:return new Position(position.getxAxis()+1,position.getyAxis());default:throw new IllegalArgumentException();}}}

如果無(wú)效的x或y值,PositionRepairer類將固定位置。

package com.gkatzioura.solid.single;public class PositionRepairer {public Position fix(Position position) {return new Position(position.getxAxis()<0?0:position.getxAxis(),position.getyAxis()<0?0:position.getyAxis());}}

Navigator類將具有NextPositionResolver和PositionRepairer類作為依賴項(xiàng),以便正確執(zhí)行導(dǎo)航。

package com.gkatzioura.solid.single;public class Navigator {private NextPositionResolver nextPositionResolver;private PositionRepairer positionRepairer;public Navigator(NextPositionResolver nextStepResolver,PositionRepairer positionRepairer) {this.nextPositionResolver = nextStepResolver;this.positionRepairer = positionRepairer;}public Position navigate(Position position, Direction direction) {Position nextPosition = nextPositionResolver.resolve(position,direction);Position fixedPosition = positionRepairer.fix(nextPosition);return fixedPosition;}}

您可以在github上找到源代碼。 下一個(gè)原則是開(kāi)放/封閉原則。

另外,我還編寫(xiě)了備忘單,其中包含有關(guān)扎實(shí)原則的摘要。
在鏈接中注冊(cè)以接收它。

翻譯自: https://www.javacodegeeks.com/2018/02/solid-principles-single-responsibility-principle.html

朝著理想堅(jiān)實(shí)邁進(jìn)

總結(jié)

以上是生活随笔為你收集整理的朝着理想坚实迈进_坚实原则:单一责任原则的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 男人添女人下部高潮全视频 | 无码精品黑人一区二区三区 | 国产日产精品一区二区三区四区 | 免费看国产曰批40分钟粉红裤头 | 久久久久久久久国产精品一区 | 亚洲精品中文字幕在线观看 | 日本特黄一级大片 | 五月婷婷色 | 欧美极品在线观看 | 91久久爱 | 日本在线观看免费 | 亚洲春色另类 | 国产视频一区二区不卡 | 天天躁日日躁狠狠躁 | 美日韩在线观看 | 玩偶姐姐在线观看免费 | 午夜精品久久久久久久蜜桃 | 亚洲欧美日韩在线一区二区 | 国产精品mv| 亚洲欧美精品aaaaaa片 | 夜夜躁狠狠躁日日躁 | 成人久久在线 | 青青草老司机 | 影音先锋成人资源网 | 天天射网 | 亚洲一区二区三区四区 | 男人与雌性宠物交啪啪 | 亲子乱aⅴ一区二区三区 | 无遮挡av | 国产欧美一区二区三区国产幕精品 | 色在线播放 | 午夜成人影视 | 亚洲国产成人va在线观看天堂 | 欧美极品jizzhd欧美 | 虫族全黄h全肉污文 | 激情六月婷婷 | 成人在线观看一区二区三区 | 欧美性开放视频 | 国产一区在线观看视频 | 嫩草影院懂你的影院 | 国产午夜精品福利 | 日韩在线毛片 | 成全世界免费高清观看 | 国产xxxxwwww | 少妇激情视频 | 国产视频在 | 特大黑人巨交吊性xxxx视频 | 色综合天天色综合 | 成熟的女同志hd | 无码人妻一区二区三区在线视频 | 长篇乱肉合集乱500小说日本 | 黄网站免费入口 | 久久叉| 亚洲图片 欧美 | 91国产丝袜播放在线 | 91av福利| 国内偷拍av | 青青久视频 | 午夜成人免费电影 | 国产精品调教视频 | 国产免费一区二区三区最新6 | 999精品一区 | 国产特级视频 | 久久字幕 | 国产激情无码一区二区三区 | 天堂成人av | 欧美福利视频一区 | 亚洲高清色 | 在线亚洲自拍 | 6090伦理| 男人天堂网在线观看 | av老司机福利 | 精品一区二区三区四区视频 | 熟妇高潮一区二区高潮 | 永久免费精品 | 91视频麻豆| 亚洲区自拍偷拍 | 公妇借种乱htp109cc | 欧美 日韩 国产 激情 | 999久久久精品视频 亚洲视频精品在线 | 视色影视| sao虎视频在线精品永久 | 男人肌肌桶女人肌肌 | 亚洲成a人 | 麻豆精品免费视频 | 亚洲免费视频大全 | 黄色网免费 | 欧美xxxxx自由摘花 | 久久中文在线 | 激情视频久久 | 黄色片网站大全 | 成人精品久久 | 国产专区在线播放 | 日韩精品久久一区二区 | 久久久精品91 | 天堂色av| 久久久噜噜噜www成人 | 男女插插插视频 | 91一区二区三区在线观看 |