在Java程序里面,我想把一个接口的数据传递到下一个接口,请问应该在第一个接口的实现的类中怎么写

在Java程序里面,我想把一个接口的数据传递到下一个接口,请问应该在第一个接口的实现的类中怎么写,第1张

按道理这样应该就可以了,如果不行你这样试试:

public interface MService {

double m(double n1, double n2, double n3);

}

public interface DService {

double d(double n2, double n3);

}

public class Milling implements MService {

private DService d;

MService ms = new MService ();

d = msm(double n1, double n2, double n3);

public double m(double n1, double n2, double n3) {

return n140;

}

}

1 引言

1.1编写目的

说明编写这份详细设计说明书的目的,指出预期的读者。

1.2背景

说明:

a.待开发软件系统的名称;

b.本项目的任务提出者、开发者、用户和运行该程序系统的计算中心。

1.3定义

列出本文件中用到专门术语的定义和外文首字母组词的原词组。

1.4参考资料

列出有关的参考资料,如:

a.本项目的经核准的计划任务书或合同、上级机关的批文;

b.属于本项目的其他已发表的文件;

c.本文件中各处引用到的文件资料,包括所要用到的软件开发标准。 列出这些文件的标题、文件编号、发表日期和出版单位,说明能够取得这些文件的来源。

2 程序系统的结构

用一系列图表列出本程序系统内的每个程序(包括每个模块和子程序)的名称、标识符和它们之间 的层次结构关系。

3 程序1(标识符)设计说明

从本章开始,逐个地给出各个层次中的每个程序的设计考虑。以下给出的提纲是针对一般情况的。 对于一个具体的模块,尤其是层次比较低的模块或子程序,其很多条目的内容往往与它所隶属的上一层 模块的对应条目的内容相同,在这种情况下,只要简单地说明这一点即可。

3.1程序描述

给出对该程序的简要描述,主要说明安排设计本程序的目的意义,并且,还要说明本程序的特点(如 是常驻内存还是非常驻?是否子程序?是可重人的还是不可重人的?有无覆盖要求?是顺序处理还是并发 处理卜…..等)。

3.2功能

说明该程序应具有的功能,可采用IPO图(即输入一处理一输出图)的形式。

3.3性能

说明对该程序的全部性能要求,包括对精度、灵活性和时间特性的要求。

3.4输人项

给出对每一个输入项的特性,包括名称、标识、数据的类型和格式、数据值的有效范围、输入的方式。 数量和频度、输入媒体、输入数据的来源和安全保密条件等等。

3. 5输出项

给出对每一个输出项的特性,包括名称、标识、数据的类型和格式,数据值的有效范围,输出的形式、 数量和频度,输出媒体、对输出图形及符号的说明、安全保密条件等等。

3.6算法

详细说明本程序所选用的算法,具体的计算公式和计算步骤。

3.7流程逻辑

用图表(例如流程图、判定表等)辅以必要的说明来表示本程序的逻辑流程。

3.8接口

用图的形式说明本程序所隶属的上一层模块及隶属于本程序的下一层模块、子程序,说明参数赋值和调用方式,说明与本程序相直接关联的数据结构(数据库、数据文卷)。

3.9存储分配

根据需要,说明本程序的存储分配。

3.10注释设计

说明准备在本程序中安排的注释,如:

a. 加在模块首部的注释;

b.加在各分枝点处的注释; 对各变量的功能、范围、缺省条件等所加的注释;

d.对使用的逻辑所加的注释等等。

3.11限制条件

说明本程序运行中所受到的限制条件。

3.12测试计划

说明对本程序进行单体测试的计划,包括对测试的技术要求、输入数据、预期结果、进度安排、人员职责、设备条件驱动程序及桩模块等的规定。

3.13尚未解决的问题

说明在本程序的设计中尚未解决而设计者认为在软件完成之前应解决的问题。

4 程序2(标识符)设计说明

用类似3的方式,说明第2个程序乃至第N个程序的设计考虑。

给你的也不是什么系统之类的

也就是一个思想而已,想了一下用<设计模式之Factory>来回答你的问题

///////////////////////////////////////////////////////////////

工厂模式定义:提供创建对象的接口

为何使用

工厂模式是我们最常用的模式了,著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。

为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑实用工厂模式,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量。

我们以类Sample为例, 如果我们要创建Sample的实例对象:

Sample sample=new Sample();

可是,实际情况是,通常我们都要在创建sample实例时做点初始化的工作,比如赋值 查询数据库等。

首先,我们想到的是,可以使用Sample的构造函数,这样生成实例就写成:

Sample sample=new Sample(参数);

但是,如果创建sample实例时所做的初始化工作不是象赋值这样简单的事,可能是很长一段代码,如果也写入构造函数中,那你的代码很难看了(就需要Refactor重整)。

为什么说代码很难看,初学者可能没有这种感觉,我们分析如下,初始化工作如果是很长一段代码,说明要做的工作很多,将很多工作装入一个方法中,相当于将很多鸡蛋放在一个篮子里,是很危险的,这也是有背于Java面向对象的原则,面向对象的封装(Encapsulation)和分派(Delegation)告诉我们,尽量将长的代码分派“切割”成每段,将每段再“封装”起来(减少段和段之间偶合联系性),这样,就会将风险分散,以后如果需要修改,只要更改每段,不会再发生牵一动百的事情。

在本例中,首先,我们需要将创建实例的工作与使用实例的工作分开, 也就是说,让创建实例所需要的大量初始化工作从Sample的构造函数中分离出去。

这时我们就需要Factory工厂模式来生成对象了,不能再用上面简单new Sample(参数)。还有,如果Sample有个继承如MySample, 按照面向接口编程,我们需要将Sample抽象成一个接口现在Sample是接口,有两个子类MySample 和HisSample 我们要实例化他们时,如下:

Sample mysample=new MySample();

Sample hissample=new HisSample();

随着项目的深入,Sample可能还会\"生出很多儿子出来\", 那么我们要对这些儿子一个个实例化,更糟糕的是,可能还要对以前的代码进行修改:加入后来生出儿子的实例这在传统程序中是无法避免的

但如果你一开始就有意识使用了工厂模式,这些麻烦就没有了

工厂方法

你会建立一个专门生产Sample实例的工厂:

public class Factory{

public static Sample creator(int which){

//getClass 产生Sample 一般可使用动态类装载装入类。

if (which==1)

return new SampleA();

else if (which==2)

return new SampleB();

}

}

那么在你的程序中,如果要实例化Sample时就使用

Sample sampleA=Factorycreator(1);

这样,在整个就不涉及到Sample的具体子类,达到封装效果,也就减少错误修改的机会,这个原理可以用很通俗的话来比喻:就是具体事情做得越多,越容易范错误这每个做过具体工作的人都深有体会,相反,官做得越高,说出的话越抽象越笼统,范错误可能性就越少好象我们从编程序中也能悟出人生道理呵呵

使用工厂方法 要注意几个角色,首先你要定义产品接口,如上面的Sample,产品接口下有Sample接口的实现类,如SampleA,其次要有一个factory类,用来生成产品Sample,如下图,最右边是生产的对象Sample:

进一步稍微复杂一点,就是在工厂类上进行拓展,工厂类也有继承它的实现类concreteFactory了。

抽象工厂

工厂模式中有: 工厂方法(Factory Method) 抽象工厂(Abstract Factory)

这两个模式区别在于需要创建对象的复杂程度上。如果我们创建对象的方法变得复杂了,如上面工厂方法中是创建一个对象Sample,如果我们还有新的产品接口Sample2

这里假设:Sample有两个concrete类SampleA和SamleB,而Sample2也有两个concrete类Sample2A和SampleB2

那么,我们就将上例中Factory变成抽象类,将共同部分封装在抽象类中,不同部分使用子类实现,下面就是将上例中的Factory拓展成抽象工厂:

public abstract class Factory{

public abstract Sample creator();

public abstract Sample2 creator(String name);

}

public class SimpleFactory extends Factory{

public Sample creator(){

return new SampleA

}

public Sample2 creator(String name){

return new Sample2A

}

}

public class BombFactory extends Factory{

public Sample creator(){

return new SampleB

}

public Sample2 creator(String name){

return new Sample2B

}

}

从上面看到两个工厂各自生产出一套Sample和Sample2,也许你会疑问,为什么我不可以使用两个工厂方法来分别生产Sample和Sample2

抽象工厂还有另外一个关键要点,是因为 SimpleFactory内,生产Sample和生产Sample2的方法之间有一定联系,所以才要将这两个方法捆绑在一个类中,这个工厂类有其本身特征,也许制造过程是统一的,比如:制造工艺比较简单,所以名称叫SimpleFactory。

在实际应用中,工厂方法用得比较多一些,而且是和动态类装入器组合在一起应用

后面还有一些,但是我想这些应该可以解决你想知道的了

就是可以访问到这个程序的api,就像你设计了一个游戏,其中主角的攻击力是100,但是我现在想更新下主角的攻击力,怎么办呢。这个时候你写的时候就应该写一个api。让设计者或者其他人能设置或者读取到这个东西。

这样说我不知道对不对,但是就是让外人在无需访问其源代码的情况下获得访问这个程序的通道,就是api嘛。。

USB是一种支持在USB主机和USB设备之间进行串行数据传输的通信协议。主机作为总线的主叫方,采用两种信令模式:全速模式12Mb/s和低速模式15Mb/s。USB使用四种数据传输方式:控制传输(control)、中断传输(interrupt)、批量传输(bulk)及等时传输(isochronous)。其中控制模式主要用于控制指令传输及USB规范的实现,等时传输主要用于音频及视频传输。USB通过两次总线列举(EnumerationandRenumertion)来实现设备识别以及驱动程序析加载。其具体过程为:USB设备连到主机后,主机依据USB规范在特定地址通过端口0(endpoint0)与外设通信,并将外设视为默认设备。外设与主机通信将其6设备标识(DID、PID、VID)发给主机进行第二次总线列举。主机根据设备标识,加载相应设备驱动程序,重新分配地址,并将控制权转交给外设固件(firmware),通过固件与设备驱动程序及主机应用程序的交互通信,来实现外设的功能。

以上就是关于在Java程序里面,我想把一个接口的数据传递到下一个接口,请问应该在第一个接口的实现的类中怎么写全部的内容,包括:在Java程序里面,我想把一个接口的数据传递到下一个接口,请问应该在第一个接口的实现的类中怎么写、软件接口说明文档怎么写、java编写一个有关接口的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9361506.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存