设计模式6大原则
admin
2024-01-26 04:15:24
0

●开闭原则

对扩展开放,对修改关闭,在代码层面而言就是在你有新的需求的时候,你应当增加新的对象来实现,而不是修改原来的对象

继承

●里氏替换原则

基类可以出现,那么子类一定也能行

  • 子类必须实现父类的抽象方法,但不得重写(覆盖)父类的非抽象(已实现)方法

  • 子类中可以增加自己特有的方法

  • 当子类覆盖或实现父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松

  • 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格

接口隔离原则

用多个专门的接口比使用单一的总接口要好。一个类对另外一个类的依赖性应当是建立在最小的接口上的;

一个接口代表一个角色,不应当将不同的角色都交给一个接口。没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染。

举个栗子:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。

解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系

●依赖倒转原则

针对接口编程

高层模块不应该依赖低层模块,两者都应该依赖其抽象,抽象不应该依赖细节,细节应该依赖抽象

也就是说,尽量依赖接口,不要依赖细节

例如:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。

解决方案:将类A修改为依赖接口I,类B和类C各自实现接口I,类A通过接口I间接与类B或者类C发生联系,则会大大降低修改类A的几率。

●迪米特法则,最少知道原则

减少耦合

又叫做最少知道原则,就是说一个对象应当对其它对象有尽可能少的了解,类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大,所以一个对象应该对其他对象保持最少的了解,也就是说,对于被依赖的类来说,无论逻辑多么复杂,都尽量地的将逻辑封装在类的内部,对外除了提供的public方法,不对外泄漏任何信息,迪米特法则初衷在于降低类之间的耦合。由于每个类尽量减少对其它类的依赖,因此。很容易使得系统的功能模块独立,相互之间不存在(或很少代码体现有)依赖关系。

举个栗子:Leader想从Teacher那里知道现有Student的的总数,它们之间的调用关系应该为Leader—>Teacher—>Student,Leader与Student并无直接联系,所以在Leader类的方法中不应该出现Student类

合成复用原则

尽量合成或者聚合而不是继承

相关内容

热门资讯

原创 美... 越来越多美国人不再相信美国经济为他们服务。 收入下滑、贫富分化是全球问题,但在美国,这两个问题又...
腰椎不适辨证针灸调理,从根源缓... 不少人长期久坐、弯腰劳作、受凉后都会出现腰椎酸胀、僵硬,严重时弯腰受限、牵扯腿疼麻木,现代多诊断腰肌...
莱伯泰科:公司发展战略立足于内... 证券日报网6月18日讯 ,莱伯泰科在接受调研者提问时表示,公司的发展战略立足于内生增长与外延扩张的双...
全球首个酒庄影响力指数发布,酒... 财闻 谢振宇 发自泸州 拉菲、玛歌、马爹利、麦卡伦——这些响当当的名字,背后都离不开一个共同的角色:...
首席专家[刘家顺]太原晋都医科... 太原晋都医科静脉曲张定点医院首席专家刘家顺:很多人发现自己久坐、久站后小腿酸胀沉重,腿上慢慢冒出红血...
安集科技官宣H股上市计划 安集科技于2026年6月16日公告,公司正在筹划发行境外上市股份(H股)并在香港联交所挂牌上市,旨在...
马斯克拿下7800亿天价薪酬 根据美国证券交易委员会(SEC)的一份新文件,马斯克已行使了其2018年特斯拉CEO薪酬方案的全部权...
碧芭宝贝:所有已检测纸尿裤产品... 6月21日,碧芭宝贝再就婴儿纸尿裤事件发布公告。公司称,目前品牌全核心主力系列成品第三方检测报告已全...
市场监管总局督导货拉拉整改,向... 来源:市场资讯 (来源:蓝鲸新闻) 据央视新闻,前期,市场监管总局依据《中华人民共和国反垄断法》公开...
翁虹晒女儿高中毕业礼vlog ... 搜狐娱乐讯 近日,翁虹在社交平台上晒出女儿水晶的高中毕业礼vlog,透露女儿以全年级前3、全A的成绩...
肌酸激酶(CK)检测:工作原理... 在细胞分析与临床诊断领域,肌酸激酶(CK)检测犹如精准的探测器,能够深入细胞内部,揭示肌肉组织损伤、...
超声引导下扳机指微创松解,告别... 很多人手指屈伸时出现明显弹响、卡顿,如同扣动扳机,伴随指根疼痛、晨起僵硬,严重时手指会卡住无法伸直或...
原创 中... 文、编辑 | 白前言当全球高科技产业为稀土焦灼之际,一条看似近乎完美的“去中国化”供应链路径悄然浮出...
受内存芯片短缺冲击,苹果确认产... 来源:环球网 【环球网科技综合报道】6月20日消息,据mashable报道称,苹果公司首席执行官蒂姆...
黄力医生:支架术后对寿命的影响... 很多做过支架手术的人群,术后都会陷入深深的焦虑,始终担心自己的寿命会受到严重影响,总觉得身体再也无法...
原创 2... 金饰克价冲破1306! 赤峰黄金几乎涨停,紫金矿业飙8%,但这轮黄金暴涨的真相,90%的人想反了 ...
300870,与谷歌GPU电源... 近一周,美埃科技、立昂微、欧陆通等个股获机构密集调研。 近一周机构调研个股有170多只 近一周(6月...
三门峡:中医急诊急救从“配角”... 慢性阻塞性肺疾病(以下简称慢阻肺)患者住院时间缩短35.5%,人均费用降低31.4%;急危重症患者平...
每周股票复盘:青岛银行(002... 截至2026年6月18日收盘,青岛银行(002948)报收于5.53元,较上周的5.99元下跌7.6...