当前位置: 首页 > news >正文

怎样做网站流量宁波奉化建设局网站

怎样做网站流量,宁波奉化建设局网站,中国交通建设集团有限公司英文名,网站建设的市场调研分析继续讲解第二个重要的设计模式原则——开闭原则~ 一.定义 开闭原则#xff0c;在面向对象编程领域中#xff0c;规定“软件中的对象#xff08;类#xff0c;模块#xff0c;函数等等#xff09;应该对于扩展是开放的#xff0c;但是对于修改是封闭的”#xff0c;这意…继续讲解第二个重要的设计模式原则——开闭原则~ 一.定义 开闭原则在面向对象编程领域中规定“软件中的对象类模块函数等等应该对于扩展是开放的但是对于修改是封闭的”这意味着一个实体是允许在不改变它的源代码的前提下变更它的行为。 归纳总结如下 开闭原则(Open Closed Principle是编程中最基础、最重要的设计原则。一个软件实体如类模块和函数应该对扩展开放(对提供方)对修改关闭(对使用方)。用抽象构建框架用实现扩展细节。当软件需要变化时尽量通过扩展软件实体的行为来实现变化而不是通过修改已有的代码来实现变化。编程中遵循其它原则以及使用设计模式的目的就是遵循开闭原则。 所谓对扩展开放指的是我们系统中的模块、类、方法对它们的提供者开发者应该是开放的提供者可以对系统进行扩展新增新的功能。所谓对修改关闭指的是系统中的模块、类、方法对它们的使用者调用者应该是关闭的使用者使用这些功能时不会因为提供方新增了功能而导致使用者也进行相应修改。 二.描述 开闭原则是面向对象程序设计的终极目标它使软件实体拥有一定的适应性和灵活性的同时具备稳定性和延续性~ 对软件测试的影响可以提高代码的可复用性可以提高软件的可维护性 三.案例 举个简单的例子假设你的女票使用方有一天收到了你送给她的礼物——这礼物有可能是情书也有可能是手工书~则实现的代码如下 //礼物类基类 class gift{String type; } class Letter extends gift{Letter(){super.typeLetter;} }class Handwork extends gift{Handwork(){super.typeHandwork;} }//使用方类也就是接收方类 class girlfriend{public void drawShape(gift g) {if (g.type Letter)getLetter(g);else if (g.type Handwork)getHandwork(g);}public void getLetter(gift r) {System.out.println(收到的礼物是情书);}public void getHandwork(gift r) {System.out.println(收到的礼物是手工书);} }public class Main {public static void main(String[] args) {girlfriend hyh new girlfriend();hyh.drawShape(new Letter());hyh.drawShape(new Handwork());} } 这时加入礼物种类添加了一种类型——奢侈品则对代码的修改如下 //礼物类基类 class gift{String type; } class Letter extends gift{Letter(){super.typeLetter;} }class Handwork extends gift{Handwork(){super.typeHandwork;} } class luxury extends gift{luxury(){super.typeluxury;} }//使用方类也就是接收方类 class girlfriend{public void getgift(gift g) {if (g.type Letter)getLetter(g);else if (g.type Handwork)getHandwork(g);else if (g.type Luxury)getLuxury(g);}public void getLetter(gift r) {System.out.println(收到的礼物是情书);}public void getHandwork(gift r) {System.out.println(收到的礼物是手工书);}public void getLuxury(gift r) {System.out.println(收到的礼物是奢侈品);} }public class Main {public static void main(String[] args) {girlfriend hyh new girlfriend();hyh.getgift(new Letter());hyh.getgift(new Handwork());hyh.getgift(new luxury());} } 此时不难发现不仅修改了提供方gift类的代码也修改了使用方girlfriend类的代码即违反了所谓的开闭原则~对修改关闭 也就是说当发生变更时提供方是允许修改的而使用方则不允许这就是所谓的【对扩展开放对修改关闭】。 做出如下修改即可避免 /****/ //gift类基类 abstract class gift {//声明为一个抽象类~String type;public abstract void get();//抽象方法 }class Letter extends gift {Letter() {super.type Letter;}//重点在于不同的类内部具体实现所谓的方法——即重写Overridepublic void get() {System.out.println(收到的礼物是情书~);} }class Handwork extends gift {Handwork() {super.type Handwork;}//重点在于不同的类内部具体实现所谓的方法——即重写Overridepublic void get() {System.out.println(收到的礼物是手工书~);} }class girlfriend {public void getgift(gift g) {g.get();} }public class Main {public static void main(String[] args) {girlfriend hyh new girlfriend();hyh.getgift(new Letter());hyh.getgift(new Handwork());} } 此时我们想要再添加奢侈品Luxury类只需要修改提供方即可不需要修改使用方的代码 /****/ //gift类基类 abstract class gift {//声明为一个抽象类~String type;public abstract void get();//抽象方法 }class Letter extends gift {Letter() {super.type Letter;}//重点在于不同的类内部具体实现所谓的方法——即重写Overridepublic void get() {System.out.println(收到的礼物是情书~);} }class Handwork extends gift {Handwork() {super.type Handwork;}//重点在于不同的类内部具体实现所谓的方法——即重写Overridepublic void get() {System.out.println(收到的礼物是手工书~);} } class Luxury extends gift {Luxury() {super.type Luxury;}//重点在于不同的类内部具体实现所谓的方法——即重写Overridepublic void get() {System.out.println(收到的礼物是奢侈品~);} }class girlfriend {public void getgift(gift g) {g.get();} }public class Main {public static void main(String[] args) {girlfriend hyh new girlfriend();hyh.getgift(new Letter());hyh.getgift(new Handwork());hyh.getgift(new Luxury());} } 做个总结——牢记对扩展开放对修改关闭~ 某种意义上也可以作为【多态】的示例~ 在20世纪90年代开闭原则被广泛的重新定义由于抽象化接口的使用在这中间实现可以被改变多种实现可以被创建并且多态化的替换不同的实现。 相比梅耶的使用方式多态开闭原则的定义倡导对抽象基类的继承。接口规约可以通过继承来重用但是实现不必重用。已存在的接口对于修改是封闭的并且新的实现必须至少实现那个接口。
http://www.pierceye.com/news/143408/

相关文章:

  • 失物招领网站开发项目需求分析app开发定制公司哪家好做
  • 网站不用备案阿里云 wordpress搭建网站
  • 重庆网站推广软件小朋友做安全教育的网站
  • 商家自己做的商品信息查询网站互联网有哪些行业
  • 用dw做网站时怎么添加弹窗知名网站服务器
  • 网站备案做优惠券第一营销网
  • 网站策划的基本过程全国大型网站建设
  • 个人外贸网站杭州微网站建设公司
  • wordpress皮肤下载站安徽建设工程信息网官方网站
  • 自己的电脑做服务器 并建网站asp sql网站安全性
  • 创新创业营销策略网站建设等信息系统开发计划
  • 安徽建设信息网站做胃镜多少钱天津津门网站I
  • jrs直播网站谁做的广告设计与制作专升本
  • 辽 icp 大连 网站建设个人网站做的类型
  • 做网站搞友情链接网站建设有哪些类型
  • 网站建设更新维护工作总结网站建设源文件
  • 公益网站 html 模板wordpress权限acl
  • 廊坊市网站建设企业网站设计特点
  • 网站建设论证方案传媒的域名做个什么网站
  • 成都建设网站企业电话国内信息图制作网站有哪些
  • 网站 图片切换wordpress永久免费
  • 自建社区网站网站建设全包设计
  • 广东装饰网站建设建设银行官网网站人事
  • 做网站设计赚钱吗保定模板建站平台
  • 找个免费网站这么难吗做球形全景的网站
  • c语言做网站后端深圳商业网站建设哪家好
  • wordpress小说网站模板下载地址网站建设中企动力推荐
  • 自己做网站网页剧中中国科技
  • 石家庄网站制作福州怎么提升网站打开速度
  • 网站分布郴州建设网站公司