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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java model 類設(shè)計問題

java model 類設(shè)計問題

皈依舞 2019-03-21 15:11:56
最近遇到項目 最基本的model 類設(shè)計是這樣的 model層public class ContractModel extends BaseModel  {    @Transient    private static final long serialVersionUID = -7915586025811092910L;    private Integer templatecategary;   // //類型(1維保/2維修)是否有償(1有償/2無償)形式(1**加粗文字**收款/2付款)    private String name;   //合同名稱    private String code;   //合同編碼    }但是后面又繼承了這個model層 不知道這樣設(shè)計有什么好處  public class ContractQueryModel  extends **ContractModel**{    public String toString(){        return "Model"+this.getClass().getName()+","+super.toString()+" ,[]";    }} 
查看完整描述

3 回答

?
紫衣仙女

TA貢獻(xiàn)1839條經(jīng)驗 獲得超15個贊

不確定你的問題是:“繼承的意義”?還是“為什么ContractQueryModel只重寫了toString方法”?

如果是不理解“繼承的意義”?那我想,最基本的理解就是為了復(fù)用,可以看文檔:

https://img1.sycdn.imooc.com//5cbbd47800012f1108000282.jpg

文檔地址:Inheritance

如果你的疑惑是,為什么繼承了半天,最后只重寫了toString方法?

最主要的原因我想是因為作者想要滿足開閉原則,想要一個新的toString方法,又不想對原代碼ContractModel作修改。無論如何,關(guān)于細(xì)節(jié),你應(yīng)該直接和作者討論,說不定他有更深層次的考慮。僅從你的代碼片段里,我看不出更多內(nèi)容了。

補充:

我個人理解,這不算是“代理模式”,原因是她不符合“代理模式”的基本特征,關(guān)于代理模式,看如下圖解:

https://img1.sycdn.imooc.com//5cbbd47b0001e68f06000335.jpg

由此我們知道,代理模式下,代理類應(yīng)該和被代理類實現(xiàn)相同接口,這里的ContractQueryModel不具備此特征。

最后我想談?wù)剬τ谠O(shè)計模式的粗淺理解,所謂設(shè)計模式是一種解決特定問題的最佳實踐范式,有些模式具備固定特征,有些則不具備。所以僅憑題主的幾個簡單的類,在脫離上下文的情景下,我很難判斷他是哪種設(shè)計模式(我指那些不具備固定特征的)。


查看完整回答
反對 回復(fù) 2019-04-21
  • 3 回答
  • 0 關(guān)注
  • 796 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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