中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

怎么不花錢做網(wǎng)站專業(yè)營銷推廣團隊

怎么不花錢做網(wǎng)站,專業(yè)營銷推廣團隊,寧晉企業(yè)做網(wǎng)站,網(wǎng)站建設(shè)公司市場定位設(shè)計模式原則 設(shè)計模式示例代碼庫地址: https://gitee.com/Jasonpupil/designPatterns 接口隔離原則 要求程序員盡量將臃腫龐大的接口拆分為更小的和更具體的接口,讓接口中只包含客戶感興趣的方法接口隔離原則的目標是降低類或模塊之間的耦合度&…

設(shè)計模式原則

設(shè)計模式示例代碼庫地址:

https://gitee.com/Jasonpupil/designPatterns

接口隔離原則

  • 要求程序員盡量將臃腫龐大的接口拆分為更小的和更具體的接口,讓接口中只包含客戶感興趣的方法
  • 接口隔離原則的目標是降低類或模塊之間的耦合度,提高代碼的可維護性、可擴展性和可測試性。
  • 通過使用多個專門的接口,我們可以避免類或模塊之間出現(xiàn)不必要的依賴關(guān)系,減少對無用接口的實現(xiàn)或調(diào)用,從而降低了修改和維護的成本。

模式場景:學(xué)校管理系統(tǒng),不同角色的功能

  • 接口隔離原則替換前:定義一個角色接口,包含幾個功能:成績查詢、成績上傳和教師管理,所有角色都實現(xiàn)了這個接口,但是不同角色的權(quán)限不同,只能使用對應(yīng)權(quán)限的功能,比如:學(xué)生只能成績查詢,而老師就可以成績查詢和成績上傳。如果都實現(xiàn)同一個接口,還需要進行每個功能進行隔離比較麻煩。
  • 接口隔離原則替換后:把角色功能接口根據(jù)每個功能進行拆分,角色類實現(xiàn)對應(yīng)權(quán)限的功能接口,這樣就簡化了角色類里實現(xiàn)功能隔離。

接口隔離原則替換前示例代碼:功能沒有具體實現(xiàn),主要看邏輯是怎么樣

角色功能接口:
/*** @Description: 角色接口* @Author: pupil* @Date: 2024/06/26 下午 11:29*/
public interface Role {/*** 成績查詢* @param userId 學(xué)生id* @return*/String scoreInquiry(long userId);/*** 成績上傳* @param userId 學(xué)生id* @param grades 成績*/void gradeUpload(long userId, Map<String,Double> grades);/*** 教師管理* @param teacherId 教師id*/void teacherManagement(long teacherId);}
校長類:
/*** @Description: 校長,功能沒有具體實現(xiàn)* @Author: pupil* @Date: 2024/06/26 下午 11:30*/
public class Principal implements Role {private Logger logger = LoggerFactory.getLogger(Principal.class);@Overridepublic String scoreInquiry(long userId) {logger.info("學(xué)生{}:成績是....",userId);return null;}@Overridepublic void gradeUpload(long userId, Map<String, Double> grades) {// 無法實現(xiàn)該功能}@Overridepublic void teacherManagement(long teacherId) {logger.info("教師{}: 進行管理",teacherId);}
}
教師類:
/*** @Description: 教師* @Author: pupil* @Date: 2024/06/26 下午 11:31*/
public class Teacher implements Role {private Logger logger = LoggerFactory.getLogger(Teacher.class);@Overridepublic String scoreInquiry(long userId) {logger.info("學(xué)生{}:成績是....",userId);return null;}@Overridepublic void gradeUpload(long userId, Map<String, Double> grades) {logger.info("學(xué)生{}:成績上傳為{}",userId,grades);}@Overridepublic void teacherManagement(long teacherId) {// 無法實現(xiàn)該功能}
}
學(xué)生類:
/*** @Description: 學(xué)生* @Author: pupil* @Date: 2024/06/26 下午 11:31*/
public class Student implements Role {private Logger logger = LoggerFactory.getLogger(Student.class);@Overridepublic String scoreInquiry(long userId) {logger.info("學(xué)生{}:成績是....",userId);return null;}@Overridepublic void gradeUpload(long userId, Map<String, Double> grades) {// 無法實現(xiàn)該功能}@Overridepublic void teacherManagement(long teacherId) {// 無法實現(xiàn)該功能}
}

接口隔離原則替換后示例代碼:功能沒有具體實現(xiàn),主要看邏輯是怎么樣

成績查詢功能接口:
/*** @Description: 成績查詢功能接口* @Author: pupil* @Date: 2024/06/26 下午 11:56*/
public interface ScoreInquiry {/*** 成績查詢* @param userId 學(xué)生id* @return*/String scoreInquiry(long userId);
}
成績上傳功能接口:
/*** @Description: 成績上傳功能接口* @Author: pupil* @Date: 2024/06/26 下午 11:56*/
public interface GradeUpload {/*** 成績上傳* @param userId 學(xué)生id* @param grades 成績*/void gradeUpload(long userId, Map<String,Double> grades);
}
教師管理功能接口:
/*** @Description: 教師管理功能接口* @Author: pupil* @Date: 2024/06/27 上午 12:01*/
public interface TeacherManagement {/*** 教師管理* @param teacherId 教師id*/void teacherManagement(long teacherId);
}
校長類:
/*** @Description: 校長,功能沒有具體實現(xiàn)* @Author: pupil* @Date: 2024/06/26 下午 11:30*/
public class Principal implements ScoreInquiry, TeacherManagement {private Logger logger = LoggerFactory.getLogger(Principal.class);@Overridepublic String scoreInquiry(long userId) {logger.info("學(xué)生{}:成績是....", userId);return null;}@Overridepublic void teacherManagement(long teacherId) {logger.info("教師{}: 進行管理", teacherId);}}
教師類:
/*** @Description: 教師,功能沒有具體實現(xiàn)* @Author: pupil* @Date: 2024/06/26 下午 11:31*/
public class Teacher implements ScoreInquiry, GradeUpload {private Logger logger = LoggerFactory.getLogger(Teacher.class);@Overridepublic String scoreInquiry(long userId) {logger.info("學(xué)生{}:成績是....",userId);return null;}@Overridepublic void gradeUpload(long userId, Map<String, Double> grades) {logger.info("學(xué)生{}:成績上傳為{}",userId,grades);}}
學(xué)生類:
/*** @Description: 學(xué)生,功能沒有具體實現(xiàn)* @Author: pupil* @Date: 2024/06/26 下午 11:31*/
public class Student implements ScoreInquiry {private Logger logger = LoggerFactory.getLogger(Student.class);@Overridepublic String scoreInquiry(long userId) {logger.info("學(xué)生{}:成績是....",userId);return null;}
}

根據(jù)接口隔離原則的示例類圖:

在這里插入圖片描述

http://www.risenshineclean.com/news/36703.html

相關(guān)文章:

  • 杭州亞運會閉幕式安卓手機優(yōu)化大師官方下載
  • 鼎湖網(wǎng)站建設(shè)啥都能看的瀏覽器
  • 杭州微網(wǎng)站開發(fā)先做后付費的代運營
  • 中視頻自媒體平臺注冊seo中心
  • 廈門外貿(mào)商城網(wǎng)站建設(shè)seo運營做什么
  • 網(wǎng)站地圖怎么做XML網(wǎng)站網(wǎng)上推廣
  • 網(wǎng)站開發(fā)建設(shè)方案書嵌入式培訓(xùn)
  • jsp網(wǎng)站開發(fā)教學(xué)上海培訓(xùn)機構(gòu)有哪些
  • 通遼網(wǎng)站建設(shè)公司百度移動點擊排名軟件
  • 做網(wǎng)站的工資高嗎?谷歌商店paypal下載官網(wǎng)
  • 線切割加工東莞網(wǎng)站建設(shè)技術(shù)支持百度業(yè)務(wù)范圍
  • 書簽制作手工搜索引擎優(yōu)化工作
  • 網(wǎng)站怎么做站內(nèi)美化代運營公司哪家好一些
  • 凡科網(wǎng)之前做的網(wǎng)站在哪看寧波seo整站優(yōu)化
  • 網(wǎng)站建設(shè)unohacha傳播易廣告投放平臺
  • 企業(yè)網(wǎng)站建設(shè)設(shè)計需要什么網(wǎng)站seo公司哪家好
  • 做視頻網(wǎng)站如何賺錢企業(yè)網(wǎng)站設(shè)計思路
  • 普斯泰網(wǎng)站建設(shè)百度搜索指數(shù)和資訊指數(shù)
  • 網(wǎng)站描述標簽怎么寫技術(shù)培訓(xùn)學(xué)校機構(gòu)
  • 網(wǎng)站建設(shè)要程序員嗎直接下載app
  • 太原視頻剪輯培訓(xùn)機構(gòu)哪個好上海關(guān)鍵詞優(yōu)化外包
  • wordpress全站美化東莞網(wǎng)絡(luò)優(yōu)化公司
  • 網(wǎng)站開發(fā)和軟件開發(fā)有什么區(qū)別2022新聞大事件摘抄
  • 網(wǎng)站建設(shè)漠環(huán)熊掌號濟源網(wǎng)絡(luò)推廣
  • 研究生院 網(wǎng)站 建設(shè)新的營銷模式有哪些
  • 廣告行業(yè)網(wǎng)站建設(shè)方案網(wǎng)站優(yōu)化塔山雙喜
  • 網(wǎng)站正在建設(shè)中頁面深圳營銷推廣公司
  • 不需要付費的網(wǎng)站贛州seo顧問
  • 建設(shè)網(wǎng)站平臺的章程網(wǎng)頁設(shè)計與制作個人網(wǎng)站模板
  • 網(wǎng)站滾動效果怎么做對網(wǎng)絡(luò)營銷的認識800字