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

《商务网站开发》 实训报告书扬州有做义工的地方或网站嘛

《商务网站开发》 实训报告书,扬州有做义工的地方或网站嘛,网站定位策划书,广州网站设计素材目录 1、 基本介绍 2、 应用实例 3、 依赖关系传递的三种方式 (1) 接口传递 (2) 构造方法传递 (3) setter方式传递 4、 注意事项和细节 1、 基本介绍 依赖倒转原则(Dependence Inversion Principle)是指#xff1a; 高层模块不应该依赖低层模块#xff0c;二者都应该依…目录 1、 基本介绍 2、 应用实例 3、 依赖关系传递的三种方式 (1) 接口传递 (2) 构造方法传递 (3) setter方式传递 4、 注意事项和细节 1、 基本介绍 依赖倒转原则(Dependence Inversion Principle)是指 高层模块不应该依赖低层模块二者都应该依赖其抽象(抽象类/接口)不要去依赖一个具体的子类 抽象不应该依赖细节细节应该依赖抽象这样稳定性会比较好 依赖倒转(倒置)的中心思想是面向接口编程 依赖倒转原则是基于这样的设计理念相对于细节的多变性抽象的东西要稳定的多。以抽象为基础搭建的架构比以细节为基础的架构要稳定的多。在 java 中抽象指的是接口或抽象类细节就是具体的实现类 使用接口或抽象类的目的是制定好规范而不涉及任何具体的操作把展现细节的任务交给他们的实现类去完成接口和抽象类的价值在于设计 2、 应用实例 编程完成Person接收消息的功能。 (1) 传统方式 package com.principle.inversion; public class DependecyInversion1 {public static void main(String[] args) {Person person new Person();person.receive(new Email());} }class Email{public String getInfo() {return 电子邮件信息hello world;} } //方式一分析 //1.优点简单容易想到容易实现 //2.缺点如果我们获取的对象是 微信、短信等等则需要新增类同时Person也需要增加相应的接收方法扩展性不好 //3.解决思路引入一个抽象的接口IReceiver表示接收者这样Person类与接口IReceiver发生依赖 // 因为EmailWeiXin等等都属于接收的范畴它们各自实现IReceiver接口就可以了这样就符合了依赖倒转原则class Person{public void receive(Email email) {System.out.println(email.getInfo());} } (2) 改进方式 package com.principle.inversion; public class DependecyInversion1Improve {public static void main(String[] args) {//客户端无需改变Person person new Person();person.receive(new Email());person.receive(new WeChat());} }interface IReceiver{public String getInfo(); }class Email implements IReceiver{public String getInfo() {return 电子邮件信息hello world;} }class WeChat implements IReceiver{public String getInfo() {return 微信消息hello;} }class Person{public void receive(IReceiver receiver) {System.out.println(receiver.getInfo());} } 3、 依赖关系传递的三种方式 (1) 接口传递 public class DependencyPass {public static void main(String[] args) {ChangHong changHong new ChangHong();OpenAndClose openAndClose new OpenAndClose();openAndClose.open(changHong);} }// 方式 1 通过接口传递实现依赖 // 开关的接口 interface IOpenAndClose {public void open(ITV tv); // 抽象方法,接收接口 }interface ITV { // ITV 接口public void play(); }class ChangHong implements ITV {Overridepublic void play() {System.out.println(长虹电视机打开);} } // 实现接口 class OpenAndClose implements IOpenAndClose {public void open(ITV tv) {tv.play();} } (2) 构造方法传递 public class DependencyPass {public static void main(String[] args) {ChangHong changHong new ChangHong();//通过构造器进行依赖传递OpenAndClose openAndClose new OpenAndClose(changHong);openAndClose.open();} } // 方式 2: 通过构造方法依赖传递 interface IOpenAndClose {public void open(); // 抽象方法 }interface ITV { // ITV 接口public void play(); }class OpenAndClose implements IOpenAndClose {public ITV tv; // 成员public OpenAndClose(ITV tv) { // 通过构造器将接口传入this.tv tv;}public void open() { this.tv.play(); } }class ChangHong implements ITV {Overridepublic void play() {System.out.println(长虹电视机打开);} } (3) setter方式传递 public class DependencyPass {public static void main(String[] args) {ChangHong changHong new ChangHong();//通过 setter 方法进行依赖传递OpenAndClose openAndClose new OpenAndClose();openAndClose.setTv(changHong);openAndClose.open();//没有setTv()直接open()就会报空指针异常} } // 方式 3 ,  通过 setter 方法传递 interface IOpenAndClose {public void open(); // 抽象方法public void setTv(ITV tv); }interface ITV { // ITV 接口public void play(); }class OpenAndClose implements IOpenAndClose {private ITV tv;public void setTv(ITV tv) { this.tv tv; }public void open() { this.tv.play(); } }class ChangHong implements ITV {Overridepublic void play() {System.out.println(长虹电视机打开);} } 4、 注意事项和细节 1低层模块尽量都要有抽象类或接口或者两者都有程序稳定性更好. 2变量的声明类型尽量是抽象类或接口, 这样我们的变量引用和实际对象间就存在一个缓冲层利于程序扩展和优化 比如class A extends B{}其中B是一个抽象类/接口在使用时B obj new A()如果A类要进行扩展只需要在B中增加一个方法即可。 3继承时遵循里氏替换原则
http://www.sczhlp.com/news/169127/

相关文章:

  • 番禺网站建设怎样做app 的模板下载网站
  • 网站空间续费后网页不能打开网页打不开怎么设置浏览器
  • 网站的内容更新国土局网站建设经验
  • 天津营销网站建设联系方式做体育网站
  • 织梦网站怎样入侵检察院做网站的目的
  • 网站 规划大兴专业网站建设公司
  • 上海建网站开发公原油可以取什么做标题发网站
  • 餐饮业网站建设天津网站建设网站排名优化
  • 个人网站做app上传广州外贸网站建站
  • 做网站做好用的软件wordpress做电商网站
  • sirna在线设计网站两岸统一最新消息
  • 网站维护服务费icp备案查询官方网站
  • 网站建设主要营销内客网站一级域名和二级域名
  • 购物网站有哪些?自己开发聊天软件
  • 佛山美容网站建设龙岩网红景点
  • 四川大学规划建设处官方网站沧州有没有做网站的
  • 三大门户网站哪家做的最好在线制作印章软件
  • 网站管理员怎么做大气黑色机械企业网站源码
  • 龙岩做网站开发找哪家p2p网站怎么做
  • 做临床研究在哪个网站注册兰州网站建设专家
  • 网站点击率代码网站建设专业可行性分析
  • 专门做旅游的网站排名优化公司
  • 徐州信息网官网威海网站优化公司
  • 背景网站建设公司做网站买域名要多少钱
  • 医疗网站是否全部需要前置备案wordpress备案
  • 网站编写费用深圳市建设工程造价管理站
  • 做网站公司 汉狮网络建网站 找个人
  • 十大免费网站免费下载软件asp+网站开发
  • 网站空间商推荐google 空间 网站
  • 响应式网站实例江浦做网站