当前位置: 首页 > news >正文 资阳视频网站建设平台制作计划 news 2025/11/3 1:23:25 资阳视频网站建设,平台制作计划,如何开发cms网站,杭州网站建设浙江目录一、设计模式的目的二、设计模式的七大原则1.单一职责原则2.开放-关闭原则一、设计模式的目的 设计模式的目的是为了提高代码重用性、可读性、可扩展性、可靠性#xff0c;使得程序呈现出高内聚、低耦合的特性。 代码重用性#xff08;相同功能的代码#xff0c;不用多… 目录一、设计模式的目的二、设计模式的七大原则1.单一职责原则2.开放-关闭原则一、设计模式的目的 设计模式的目的是为了提高代码重用性、可读性、可扩展性、可靠性使得程序呈现出高内聚、低耦合的特性。 代码重用性相同功能的代码不用多次编写可读性编程规范性便于其他程序员的阅读和理解可扩展性当需要增加新的功能时非常的方便称为可维护性可靠性当我们增加新的功能时对原来的功能没有影响使程序呈现高内聚、低耦合的特性 二、设计模式的七大原则 我们在设计一些设计模式时一般遵循如下七项基本原则它们分别是: 单一职责原则 (Single Responsibility Principle)开放-关闭原则 (Open-Closed Principle)里氏替换原则 (Liskov Substitution Principle)依赖倒转原则 (Dependence Inversion Principle)接口隔离原则 (Interface Segregation Principle)迪米特法则Law Of Demeter组合/聚合复用原则 (Composite/Aggregate Reuse Principle) 1.单一职责原则 单一职责原则的核心就是控制类的粒度大小、将对象解耦、提高其内聚性。如果遵循单一职责原则将有以下优点。 **降低类的复杂度。**一个类只负责一项职责其逻辑肯定要比负责多项职责简单得多。**提高类的可读性。**复杂性降低自然其可读性会提高。**提高系统的可维护性。**可读性提高那自然更容易维护了。**变更引起的风险降低。**变更是必然的如果单一职责原则遵守得好当修改一个功能时可以显著降低对其他功能的影响。 简单说明一下首先我们可以对某个类来说即一个类应该只负责一项职责。如类A负责两个不同职责: 职责1职责2。当职责1需求变更而改变A时可能造成职责2执行错误所以需要将类A的粒度分解为A1A2。 以下假设一个场景并用代码演示项目代码名称为SRP 有一个鸟类它会飞翔用一个类描述鸟类飞行这个场景 创建类Fly.java代码如下 public class Fly {public void birds(String birds){System.out.println(birds 会在空中飞翔);} }创建运行类Client.java代码如下 public class Client{public static void main(String[] args){Fly fly new Fly();fly.birds(老鹰);fly.birds(猫头鹰);fly.birds(喜鹊);} } 运行结果如下所示 老鹰会在空中飞翔 猫头鹰会在空中飞翔 喜鹊会在空中飞翔在后来发现新问题并不是所有的鸟类都会飞翔的比如企鹅就不会了修改时如果遵循单一职责原则的话那么需要添加一个类 创建类NoFly.java代码如下 public class NoFly {public void birds(String birds){System.out.println(\n);System.out.println(birds 不会在空中飞翔);} }修改运行类Client.java代码如下 public class Client{public static void main(String[] args){Fly fly new Fly();fly.birds(老鹰);fly.birds(猫头鹰);fly.birds(喜鹊);NoFly noFly new NoFly();noFly.birds(企鹅);} } 运行结果如下所示 老鹰会在空中飞翔 猫头鹰会在空中飞翔 喜鹊会在空中飞翔企鹅不会在空中飞翔2.开放-关闭原则 开放封闭原则就是软件实体应该对扩展开放而对修改封闭。开放封闭原则是所有面向对象原则的核心。软件设计本身所追求的目标就是封装变化降低耦合而开放封闭原则正是对这一目标的最直接体现。 开放封闭原则主要体现在两个方面 对扩展开放意味着有新的需求或变化时可以对现有代码进行扩展以适应新的情况。对修改封闭意味着类一旦设计完成就可以独立其工作而不要对类尽任何修改。 如果一个软件能够满足 OCP 原则那么它将有以下两项优点 能够扩展已存在的系统能够提供新的功能满足新的需求因此该软件有着很强的适应性和灵活性。已存在的模块特别是那些重要的抽象模块不需要被修改那么该软件就有很强的稳定性和持久性 开闭原则的实现方法 通过“抽象约束、封装变化”来实现开闭原则参数类型,引用对象尽量使用接口或抽象类,而不是现实类;通过接口或抽象类为软件实体定义一个相对稳定的抽象层一旦确定就不允许修改;将相同的变化封装到一个接口或抽象类中;将不同的变化封装到不同的接口或抽象类中; 以下假设一个场景并用代码演示项目代码名称为OCP 以商场卖东西为例 创建类shopping.java代码如下 public class Shopping {public static void main(String[] args) {Shop shopping new Shop();shopping.shop(new Apple());shopping.shop(new Pear());shopping.shop(new Watermelon());} }class Shop {public void shop(Type s) {if (s.type 1) {apple(s);} else if (s.type 2) {pear(s);} else if (s.type 3) {watermelon(s);}}//出售苹果public void apple(Type r) {System.out.println( 出售苹果 );}//出售梨public void pear(Type r) {System.out.println( 出售梨 );}//出售西瓜public void watermelon(Type r) {System.out.println( 出售西瓜 );} }class Type {int type; }class Apple extends Type {Apple() {super.type 1;} }class Pear extends Type {Pear() {super.type 2;} }class Watermelon extends Type {Watermelon() {super.type 3;}} 运行结果如下所示 出售苹果 出售梨 出售西瓜 修改代码改为用OCP原则 创建代码ShoppingOCP.java代码如下 public class ShoppingOCP {public static void main(String[] args) {ShopOCP shopping new ShopOCP();shopping.shop(new Apple1());shopping.shop(new Pear1());shopping.shop(new Watermelon1());shopping.shop(new Cherry1());} }class ShopOCP {public void shop(Type1 s) {s.type1();} }abstract class Type1 {abstract void type1(); }class Apple1 extends Type1 {Overridevoid type1() {System.out.println( 出售苹果 );} }class Pear1 extends Type1 {Overridevoid type1() {System.out.println( 出售梨 );} }class Watermelon1 extends Type1 {Overridevoid type1() {System.out.println( 出售西瓜 );} }class Cherry1 extends Type1 {Overridevoid type1() {System.out.println( 出售樱桃 );} } 运行结果如下所示 出售苹果 出售梨 出售西瓜 出售樱桃 把创建Type1 类做成抽象类并提供一个抽象的 type方法让子类去实现即可这样我们有新的水果种类时只需要让新的水果类继承 Type1 并实现 type方法即可使用方的代码就不需要修改了 从而满足了开闭原则。 以上代码下载请点击该链接https://github.com/Yarrow052/Java-package.git 文章转载自: http://www.morning.sqmlw.cn.gov.cn.sqmlw.cn http://www.morning.ailvturv.com.gov.cn.ailvturv.com http://www.morning.xxwfq.cn.gov.cn.xxwfq.cn http://www.morning.pakistantractors.com.gov.cn.pakistantractors.com http://www.morning.mcqhb.cn.gov.cn.mcqhb.cn http://www.morning.skrww.cn.gov.cn.skrww.cn http://www.morning.zglrl.cn.gov.cn.zglrl.cn http://www.morning.csznh.cn.gov.cn.csznh.cn http://www.morning.chhhq.cn.gov.cn.chhhq.cn http://www.morning.kbdjn.cn.gov.cn.kbdjn.cn http://www.morning.dwxqf.cn.gov.cn.dwxqf.cn http://www.morning.hmktd.cn.gov.cn.hmktd.cn http://www.morning.cnfjs.cn.gov.cn.cnfjs.cn http://www.morning.ptzbg.cn.gov.cn.ptzbg.cn http://www.morning.zsyqg.cn.gov.cn.zsyqg.cn http://www.morning.hrnrx.cn.gov.cn.hrnrx.cn http://www.morning.shnqh.cn.gov.cn.shnqh.cn http://www.morning.zqsnj.cn.gov.cn.zqsnj.cn http://www.morning.dpbgw.cn.gov.cn.dpbgw.cn http://www.morning.fwwkr.cn.gov.cn.fwwkr.cn http://www.morning.ldpjm.cn.gov.cn.ldpjm.cn http://www.morning.kxltf.cn.gov.cn.kxltf.cn http://www.morning.cpctr.cn.gov.cn.cpctr.cn http://www.morning.znrlg.cn.gov.cn.znrlg.cn http://www.morning.lmhwm.cn.gov.cn.lmhwm.cn http://www.morning.inheatherskitchen.com.gov.cn.inheatherskitchen.com http://www.morning.pctsq.cn.gov.cn.pctsq.cn http://www.morning.mqxzh.cn.gov.cn.mqxzh.cn http://www.morning.txfxy.cn.gov.cn.txfxy.cn http://www.morning.yhwyh.cn.gov.cn.yhwyh.cn http://www.morning.smxrx.cn.gov.cn.smxrx.cn http://www.morning.yjqkk.cn.gov.cn.yjqkk.cn http://www.morning.fslxc.cn.gov.cn.fslxc.cn http://www.morning.langlaitech.cn.gov.cn.langlaitech.cn http://www.morning.wbrf.cn.gov.cn.wbrf.cn http://www.morning.nzwp.cn.gov.cn.nzwp.cn http://www.morning.pybqq.cn.gov.cn.pybqq.cn http://www.morning.zgnng.cn.gov.cn.zgnng.cn http://www.morning.qbkw.cn.gov.cn.qbkw.cn http://www.morning.zqxhn.cn.gov.cn.zqxhn.cn http://www.morning.ftync.cn.gov.cn.ftync.cn http://www.morning.ppllj.cn.gov.cn.ppllj.cn http://www.morning.zqzhd.cn.gov.cn.zqzhd.cn http://www.morning.thbnt.cn.gov.cn.thbnt.cn http://www.morning.kkgbs.cn.gov.cn.kkgbs.cn http://www.morning.kbynw.cn.gov.cn.kbynw.cn http://www.morning.ykyfq.cn.gov.cn.ykyfq.cn http://www.morning.jlxld.cn.gov.cn.jlxld.cn http://www.morning.pypqf.cn.gov.cn.pypqf.cn http://www.morning.ailvturv.com.gov.cn.ailvturv.com http://www.morning.xnhnl.cn.gov.cn.xnhnl.cn http://www.morning.zxznh.cn.gov.cn.zxznh.cn http://www.morning.ksjnl.cn.gov.cn.ksjnl.cn http://www.morning.dtzsm.cn.gov.cn.dtzsm.cn http://www.morning.mjyrg.cn.gov.cn.mjyrg.cn http://www.morning.ttdbr.cn.gov.cn.ttdbr.cn http://www.morning.mpsnb.cn.gov.cn.mpsnb.cn http://www.morning.lrjtx.cn.gov.cn.lrjtx.cn http://www.morning.kwwkm.cn.gov.cn.kwwkm.cn http://www.morning.qgjp.cn.gov.cn.qgjp.cn http://www.morning.tslxr.cn.gov.cn.tslxr.cn http://www.morning.hlwzd.cn.gov.cn.hlwzd.cn http://www.morning.wftrs.cn.gov.cn.wftrs.cn http://www.morning.rqlf.cn.gov.cn.rqlf.cn http://www.morning.hfyll.cn.gov.cn.hfyll.cn http://www.morning.nlqgb.cn.gov.cn.nlqgb.cn http://www.morning.wdlg.cn.gov.cn.wdlg.cn http://www.morning.ptxwg.cn.gov.cn.ptxwg.cn http://www.morning.zbjfq.cn.gov.cn.zbjfq.cn http://www.morning.zsyrk.cn.gov.cn.zsyrk.cn http://www.morning.btjyp.cn.gov.cn.btjyp.cn http://www.morning.krhkn.cn.gov.cn.krhkn.cn http://www.morning.sphft.cn.gov.cn.sphft.cn http://www.morning.rggky.cn.gov.cn.rggky.cn http://www.morning.ypdmr.cn.gov.cn.ypdmr.cn http://www.morning.qrndh.cn.gov.cn.qrndh.cn http://www.morning.jpnw.cn.gov.cn.jpnw.cn http://www.morning.trjp.cn.gov.cn.trjp.cn http://www.morning.rhlhk.cn.gov.cn.rhlhk.cn http://www.morning.c7627.cn.gov.cn.c7627.cn 查看全文 http://www.tj-hxxt.cn/news/272402.html 相关文章: 网站icon图标怎么加设计网站主页要多少钱 网站开发 财务自由在工商局网站如果做注销公告 公司网站建设安全的风险建云科技网站首页 网站主题有哪些内容建设专业网站所需设备 做现货黄金看什么网站做网站郑州公司 360上做网站ajax登陆wordpress 长沙创建一个网站需要多少钱西青做网站公司 网站弹窗广告怎么做百度联系电话多少 网站备案哪里管一站建设个人网站 seo网站优化方案有专门做房孑特卖的网站吗 懂做游戏钓鱼网站的谷歌关键词搜索 关于我们网站设计wordpress 外贸企业模板 简述网站设计要遵循哪些原则html 网站模板下载 做美食分享网站源码设计院 做竞价的网站有利于优化吗注册集团公司的条件 app是网站吗制作网页时用的最多的是 网站开发建设技术规范书微网站和微信公共平台的区别 营销型网站是什么意思24小时精准天气预报 沂南网站设计苏州正规制作网站公司 查网站免费手机网站建设 六安找人做网站snippets wordpress 网站开发专业分数线建设p2p网站 创新的模板网站建设app商城开发 郑州网站seo中国建设银行行号查询 天娇易业网站建设公司各大网站博客怎么做推广 如何做网站主题怎么向企业推销网站建设 保险公司网站查询怎样自创网站 郑州建立网站阿里云网站建设详细教程 上海网站建设费用多少钱一元购物app 广州网站托管软件开发工程师太累了