精华内容
下载资源
问答
  • 系统调用和命令接口

    2019-10-11 08:20:30
    命令接口是方便人机交互设计的,你输入一个命令可能会使用到系统调用也可能不会, 系统调用是程序使用的是方便程序设计使用的。

    命令接口是方便人机交互设计的,你输入一个命令可能会使用到系统调用也可能不会,

    系统调用是程序使用的是方便程序设计使用的。

    展开全文
  • 软件接口设计

    万次阅读 2016-11-26 17:27:47
    软件接口设计 《构建可扩展的Web站点》主要介绍了Web应用程序的概念、体系结构、硬件需求、开发环境的原则及国际化、本地化和Unicode等基本内容,本文是软件接口设计。 AD:51CTO 网+ 第十二期沙龙:大话数据之...

    软件接口设计


    读后记:接口--->对象之间建立连接,指的是进行连接而设计的指定方法;

                  java中的interface是为了更好的完成这种连接【多态连接】而定义的一种语法支持;
             相对于抽象类,抽象类一般在多重继承结构下,抽象类去实现接口并具体实现部分方法..


    《构建可扩展的Web站点》主要介绍了Web应用程序的概念、体系结构、硬件需求、开发环境的原则及国际化、本地化和Unicode等基本内容,本文是软件接口设计。

    AD:51CTO 网+ 第十二期沙龙:大话数据之美_如何用数据驱动用户体验

    软件接口设计
    Software Interface Design

    将软件分层意味着我们需要完成额外的工作——设计层次之间的接口。我们原来拥有的是一大块代码,现在则会有三处不同的代码块(业务逻辑、交互逻辑和标记),它们当中的每一块都需要和下一块交流。但是仔细考虑一下这样做是否的确造成了额外的工作?答案十有八九是否定的:分析一下我们现在仅有的那一层代码,会发现这些附加劳动早就完成了,只有逻辑层和标记层之间的交流还不是很明确,和其他剩余代码混在了一起。

    为什么要花心思在分层上呢?不管怎么说,在某种程度上,原来的那种所有代码都粘在一起的程序风格还是可以工作的。然而,有几个决定性的因素,它们将我们引向分层实现,而且随着系统规模逐步扩大,这些因素会一个比一个地变得更为重要。层次分离,让不同的工程师或工程师小组可以同时工作在系统的不同层次,而不用担心无意中影响了他人的工作。除了工作对象变成了不同的物理文件之外,这些小组也不再需要对其他层次有深入了解。标记层的工作人员不必理解数据是如何从数据存储中取出,并且传给模板系统的,他们只需要知道一旦这些数据交付给了他们,应该如何去使用这些数据。

    类似的,工作重点在交互层逻辑的工程师也不需要理解在取得一条数据的背后,系统逻辑层是如何运作的,而只需要知道用相应的函数调用就可以了。在这些例子中,工程师们惟一需要关注的元素就是自己所在层次的内容和所在层次与上层和下层的接口。那么,我们一直谈论的接口到底是什么呢?要知道当我们谈的是软件层次之间的接口时,所指的并不是Java中的面向对象概念上的接口。我们所说的接口,描述的是允许一个层次和另一个层次之间交换请求和响应的一组特性。对数据层与系统逻辑层而言,接口包括对原始数据的存储和抽取。对交互逻辑层与系统逻辑层,接口包括对特定类型数据源的修改。接口仅仅定义一个层次如何向另一个层次发出请求,要求它执行一个任务,而不管这个任务如何执行。

    我们的应用程序中最为顶端的层次是比较不一样的,因为标记层与表现层之间的接口已经由我们所采用的技术定义好了。标记层到样式表的链接使用的是链接标记符或者@import语句,通过它们获得class和id属性,以及样式表中的命名的标记符序列,根据这些可以应用特定的样式规则。为了保持良好的层次分离,在标记层中应尽量避免直接使用样式属性。本书并不包含前端工程的内容,但前端分层的原因和后端分层的原因是相同的——分离样式层与标记层,才能让不同团队可以独立地工作于项目的不同方面,并且开发人员可以进行层次内部修改,而不用担心影响相邻层次。

    交互逻辑层和标记层进行交流的典型方式是模板系统。在PHP和Smarty参考实现中,Smarty为PHP交互逻辑层提供若干功能。我们可以调用 Smarty的方法来将数据导出到模板(继而用于输出),也可以调用Smarty的方法来提供在模板内执行的展现函数,甚至还可以自己直接渲染模板。在某些情况下,我们需要的并不是直接得到模板的输出,然后将输出发送给终端用户。比如在发送电子邮件的时候,我们可以在模板系统中为它创建一个模板,导出所需要的数据和功能,把这个模板渲染到交互逻辑层的一个变量中,然后发送这封邮件。采用这种做法时,要注意到数据与控制不仅是单向流动的,控制在所有层次之间都可以双向传递。

    两个逻辑层之间的接口,根据具体实现,很可能是最容易理解的,也是最难以设计的。如果两个层次使用的是同一种语言,接口可能只是一组函数。这时,接口的设计包括决定命名方案(用于函数命名)、调用方案(用于加载正确的库,以使函数可用),以及数据方案(用于将数据向前或向后传输)。所有这些方案都算在系统逻辑层逻辑模型的概要设计中。我喜欢将可能的设计选择画成一个连续的光谱图,称之为网络应用犯傻程度:

    OGF <---------- 心智健全----------> 面向对象程序设计

    这个光谱往左是单个的巨型函数,往右则接近面向对象程序设计。老式的、单一的Perl系统在光谱中非常靠左,而Zope和Plone的位置在右边。更为有趣的一些模型则沿光谱分布,其中MVC群体集中在中心三分之一处。像Struts和Rails这一类的框架,则分布在右侧靠近Zope的地方(这提醒了你接下来会发生什么)。Flickr在中间稍偏左,它采用类似MVC的方式,但没有使用框架,随着时间的推移和系统的越来越复杂,它也逐渐向右偏移。

    你选择定位在光谱上的哪一个位置进行工作,那完全是个人偏好问题。往右走,就以灵活性为代价,获得可维护性。往左走,就丧失可维护性,获得灵活性。偏离中心越远,优化系统就会越困难,但系统架构就会越简单。当前趋势是明确地远离左侧,而中右侧的框架越来越受到欢迎。但始终要牢记,你往一个方向移动,并获得某种好处的同时,也会失去一些别的东西。

    堆栈最底部的层次总有定义比较完美的接口,因为它们物理上是分离的——你总不会想用PHP来实现自己的数据库吧?所以这一块的接口定义和层次分离总是以抽象层次的形式发生在应用程序代码内部。业务逻辑层没有必要知道物理上如何连接到数据库集群,但是建立连接的代码需要知道如何连接。分离的数据库与存储层从系统逻辑层获取指令,连接到数据存储,执行指令并返回结果。例如,业务逻辑层可能知道它需要执行一些SQL语句,并知道需要在哪个集群上执行这些语句,它就可以进行如下调用:

    $result = db_query('my_cluster', 'SELECT * FROM Frobs;')

    接下来就是存储层的责任了,它的代码要连接到正确的服务器,执行命令并返回结果。执行查询的服务器可能发生变化(交换硬件时),可能被复制(也许用于冗余故障转移),可能被记入日志并进行基准测试(参阅第8章中的MySQL小节),或者执行任何我们决定的操作。这个例子中的接口是db_query( )函数和它的伙伴们。对于文件存储层而言,接口中可能包含store_file( )函数,给它传入文件名后,接着就由它来表演魔术了。这个魔术本身怎样和系统逻辑层无关,我们只要执行了需要的调用,就能得到需要的结果。

    接口设计在Web应用程序体系结构中扮演着最主要的角色。接口会随着时间而演变,接口变动时,负责不同层次工作的团队必须得进行协商,但是这些更改应该只牵涉到小部分当前开发的内容。在不会无意中破坏其他部分的情况下,我们能在单个层次内做的越多,生产效率就越高,灵活性也越高。

    展开全文
  • 接口设计

    千次阅读 多人点赞 2011-11-21 14:25:42
    接口设计 什么是接口? 接口是CPU和外设之间的连接设备,用于缓存和转发数据。 为什么需要接口? (1)解决主机CPU和外围设备之间的时序配合和通信联络问题  主机的CPU是高速处理器件,比如8086-1...

    接口设计

    什么是接口?

    接口是CPU和外设之间的连接设备,用于缓存和转发数据。


    为什么需要接口?

    1)解决主机CPU和外围设备之间的时序配合和通信联络问题

             主机的CPU是高速处理器件,比如8086-1的主频为10MHz1个时钟周期仅为100ns,一个最基本的总线周期为400ns。而外围设备的工作速度比CPU的速度慢得多。如常规外围设备中的电传打字机传送信息的速度是毫秒级;工业控制设备中的炉温控制采样周期是秒级。为保证CPU的工作效率并适应各种外围设备的速度配合要求,应在CPU和外围设备间增设一个I/O接口电路,满足两个不同速度系统的异步通信联络。

              I/O接口电路为完成时序配合和通信联络功能,通常都设有数据锁存器、缓冲器、状态寄存器以及中断控制电路等。通过接口电路,CPU通常采用查询或中断控制方式为慢速外围设备提供服务,就可保证CPU和外围设备间异步而协调的工作,既满足了外围设备的要求,又提高了CPU的利用率。

        (2)解决CPU和外围设备之间的数据格式转换和匹配问题

                 CPU是按并行处理设计的高速处理器件,即CPU只能读入和输出并行数据。但是,实际上要求其发送和接收的数据格式却不仅仅是并行的,在许多情况下是串行的。例如,为了节省传输导线,降低成本,提高可靠性,机间距离较长的通信都采用串行通信。又如,由光电脉冲编码器输出的反馈信号是串行的脉冲列,步进电动机要求提供串行脉冲等等。这就要求应将外部送往计算机的串行格式的信息转换成CPU所能接收的并行格式,也要将CPU送往外部的并行格式的信息转换成与外围设备相容的串行格式,并且要以双方相匹配的速率和电平实现信息的传送。这些功能在CPU控制下主要由相应的接口芯片来完成。

        (3)解决CPU的负载能力和外围设备端口选择问题

                  即使是CPU和某些外围设备之间仅仅进行并行格式的信息交换,一般也不能将各种外围设备的数据线、地址线直接挂到CPU的数据总线和地址总线上。这里主要存在两个问题,一是CPU总线的负载能力的问题:二是外围设备端口的选择问题。因为过多的信号线直接接到CPU总线上,必将超过CPU总线的负载能力,采用接口电路可以分担CPU总线的负载,使CPU总线不致于超负荷运行,造成工作不可靠。CPU和所有外围设备交换信息都是通过双向数据总线进行的,如果所有外围设备的数据线都直接接到CPU的数据总线上,数据总线上的信号将是混乱的,无法区分是送往哪一个外围设备的数据还是来自哪一个外围设备的数据。只有通过接口电路中具有三态门的输出锁存器或输入缓冲器,再将外围设备数据线接到CPU数据总线上,通过控制三态门的使能(选通)信号,才能使CPU的数据总线在某一时刻只接到被选通的那一个外围设备的数据线上,这就是外围设备端口的选址问题。使用可编程并行接口电路或锁存器、缓冲器就能方便的解决上述问题。

                 此外,接口电路可实现端口的可编程功能以及错误检测功能。一个端口通过软件设置既可作为输入口又可作为输出口,或者作为位控口,使用非常灵活方便。同时,多数用于串行通信的可编程接口芯片都具有传输错误检测功能,如可进行奇/偶校验、冗余校验等。

    接口硬件包含哪些部分?

    (1)基本逻辑电路
    •  命令寄存器
    • 状态寄存器
    •  数据缓冲寄存器
    (2)端口地址译码电路
    根据地址总线上的信号确定是否选中该接口的某个寄存器(端口)
    (3)供选电路
    与其它部件的连接电路,如与中断控制器连接以实现中断方式的数据传送。

    接口软件有什么功能?

    一个完整的设备接口程序包括:
    (1)初始化程序段
    (2)传送设置程序段
    (3)主控程序段
    (4)结束程序段
    (5)人机接口程序段
    设备驱动程序就是一种标准化的接口软件。

    接口电路有哪些形式?

    • 固定式结构:SSI,MSI (IC)
    • 半固定结构:GAL, PAL
    • 可编程结构:可编程芯片
    • 智能型结构:带微处理器

    CPU如何与接口进行数据交换?

    • 查询方式: CPU<>接口           先确认外设已准备好,才进行传送
    • 中断方式: CPU<>接口           为避免不断读取状态位检查设备是否已准备好而造成等待循环,当输入设备准备好时,才向CPU发中断请求,CPU响应后转入执行中断服务程序。
    • DMA方式: 存储器<>接口     接口<>接口           存储器<>存储器

    I/O端口

    什么是I/O端口?
    CPU与外设通信时,传送的数据信息,状态信息和控制信息分别进入接口电路中不同的寄存器,通常将这些寄存器和它们的控制逻辑统称为I/O端口(Port),CPU可对端口中的信息直接进行读写。
    • 数据端口:存放数据,是主机和外设之间交换的基本信息,长度一般为1-2字节,主要起数据缓冲的作用。
    • 状态端口:指示外设的当前状态,每种状态用1位表示,每个外设可以有几个状态位,由CPU读取以测试或检查外设的状态。最常用的状态位有准备就绪位(Ready),忙碌位(Busy)和错误位(Error)。
    • 命令端口:也称为控制端口,用来存放CPU向接口发出的各种命令和控制字,以便控制接口或设备的动作。常见的命令信息位有启动位,停止位,允许中断位等。

    I/O端口编址方式

    数据信息,状态信息和控制信息的含义各不相同,但在微机系统中,CPU通过接口与外设交换数据时,只有输入(IN)和输出(OUT)两种指令,所以只能把状态信息和命令信息也都当作数据信息来传送。
    I/O端口的编址方式: 存储器映象寻址方式和I/O指令寻址方式。
    • 存储器映象寻址方式(Memory Mapped I/O):把每一个I/O端口都看作一个存储单元,并与存储单元一样统一编址,可使用访问存储器映象的所有指令来访问I/O端口。
    • I/O单独编址方式:对系统中的输入输出端口地址单独编址,构成一个I/O地址空间,不占用存储空间,用专门的IN和OUT指令来访问这种具有独立地址空间的端口。8080/Z80/8088和8086等都采用此种方式。8086用地址总线的低16位来寻址I/O端口,可寻址的端口数最大可达到65536个。
    I/O指令
    如何访问I/O端口?通过执行I/O指令。
    Intel 8086的I/O指令有哪些?
    IN AL, PORT8 ;AL《(PORT8)
    IN AL, DX ;AL《(DX)
    OUT PORT8, AL ;(PORT8)《AL
    OUT DX, AL ;(DX)《AL
    其中,PORT8表示8位端口地址, PORT16表示16位端口地址,AX可以替代AL。
    例如,
    MOV DX, 300H ; DX《300H
    IN AL, DX ; AL《(DX)
    MOV DX, 301H ; DX《301H
    OUT DX, AL ; (DX)《AL
    IN AX, 80H ; AL 《80H   AH 《81H

    I/O端口地址译码原理

    • 如何在CPU执行I/O指令时可以访问到相应端口地址的I/O端口?设计I/O端口地址译码线路。
    • 如何设计I/O端口地址译码电路?通过地址总线和控制总线产生端口芯片的选择信号(CS)


    I/O端口地址译码电路分类

    •  端口地址译码电路的种类:
    1. 固定式单端口地址译码 采用门电路或译码器进行译码,设计完毕后端口地址不能更改。
    2. 可选式端口地址译码  通过比较器和译码器等组成,端口地址可以通过DIP开关进行更改。
    • 采用可编程逻辑阵列实现逻辑电路

    固定式单端口地址译码(1)


    固定式单端口地址译码(2)


    固定式单端口地址译码(3)

    3-8译码器译码电路

    接口的输入输出方法

    (1)无条件传送方式
    也称为同步传送方式,主要用于对简单外设进行操作。对这类外设,在任何时刻均已准备好数据或处于接收数据状态,如LED显示器的明灭控制(如下图所示)

    (2)查询方式
    执行读端口指令不断查询接口状态,若接口准备好, 则可以执行I/O指令输出数据到接口或或从接口读入数据。


    (3)中断方式
    接口准备好之后,便请求CPU中断现在执行的程序,转而为之服务。

    (4) DMA方式
    当外设有大量数据需要与主存储器交换时,DMA控制器向CPU申请接管总线,若成功,则控制外设与主存储器直接交换数

    DMA方式读磁盘的过程
    • 系统启动时,3个开关打向上端,总线与CPU/存储器/外设连接,并由CPU来控制,进行DMA传输前,首先初始化8237A DMA控制器,设定传送数据的计数器,起始地址,DMA通道和传送方式。
    • CPU向磁盘控制器发出读盘命令,磁盘控制器读出数据。
    • 磁盘控制器准备好数据后,向DMA控制器发送一个DMA请求信号DREQ,DMA控制器送一个保持请求信号HRQ到CPU的HOLD输入端,CPU发回保持响应信号HLDA信号,中止当前程序运营。DMA控制器收到HLDA后,将3个总线开关置向下方,让总线与CPU脱开而与DMA控制器相连。
    • DMA控制器取得总线控制权后,通过地址总线向存储器发送地址信号,并向磁盘控制器发出DMA确认信号DACK。
    • DMA控制器使控制总线上IOR#和MEMW#信号有效,使得磁盘控制器能向数据总线输出数据字节,并使存储器单元能够被写入。
    • 完成一个字节传送后,DMA控制器自动修改内部寄存器的内容并指向下一个字节的地址,通过计数器的递减完成所有数据的传送。
    • DMA传送结束后,DMA控制器撤销它对CPU发出的保持信号HRQ,并释放总线。
    • CPU在每一个非锁定时钟周期结束后,都检测HOLD引脚看是否有DMA信号。

    展开全文
  • 设计操作系统扩展批处理文件c++/c dos命令接口 (1)为Windows操作系统建立兼容的DOS命令接口,批处理文件中的流程命令。 (2)批处理文件的扩展名为.BATCH (3)具体命令:IF,FOR,WHILE,SET,SHIFT,ECHO,GOTO,:...
  • (1)为Windows操作系统建立兼容的DOS命令接口,批处理文件中的流程命令。 (2)批处理文件的扩展名为.BATCH (3)具体命令:IF,FOR,WHILE,SET,SHIFT,ECHO,GOTO,:(标号),命令格式可以参照Windows的CMD.EXE或...
  • 软件设计-接口设计、代码优化

    千次阅读 2019-05-13 10:39:30
    软件设计-接口设计、代码优化 前言 随着产品业务的发展,产品和用户量不断提升,由于之前每个产品对应一套接口,使得接口数目迅速膨胀,维护的成本也日渐变高。好的接口设计,不管从代码复用还是代码健壮性来看都...

    软件设计-接口设计、代码优化

    前言

    随着产品业务的发展,产品和用户量不断提升,由于之前每个产品对应一套接口,使得接口数目迅速膨胀,维护的成本也日渐变高。好的接口设计,不管从代码复用还是代码健壮性来看都尤为必要,从复杂的产品中抽象出一套公用接口也变得势在必行。

    设计之初

    首先,研究了大话设计模式这本书,统缆设计模式之后,从产品设计角度去分析,采用简单工厂尤为简便,但是具体的实现细节会被类case when进行判断,故此采用工厂方法实现,让子类决定去实例化哪个类,在spring容器中直接取相应对象。本次设计
    用到的设计模式有工厂模式+命令模式。

    开始实现

    1. 定义接口基类ProductInterface,此类主要包含大部分产品所需要的接口服务,用作基本实现
    2. 定义抽象类AbstractProductInterface实现ProductInterface,在抽象类中,可以提供短信发送等类似的基础服务
    3. 定义默认实现DefaultProduct和扩展实现AppProduct,根据不同的产品代码和渠道来源,从容器中选择对应的产品实现
    4. 采用命令模式实现服务调用与实际服务实现接口的隔离,实现解耦的目的,通过定义接口LoanCommand和具体的服务实现类AppCreditApplyCommand等实现

    扩展实现

    1. 定义扩展接口ExtendProductInterface,此类主要继承接口基类ProductInterface,并新增特殊接口服务,用作扩展实现
    2. 定义抽象类AbstractExtendProductInterface实现ExtendProductInterface,在抽象类中,可以提供短信发送等类似的基础服务
    3. 定义默认实现DefaultExtendProduct,根据不同的产品代码和渠道来源,从容器中选择对应的产品实现
    4. 采用命令模式实现服务调用与实际服务实现接口的隔离,实现解耦的目的,通过定义接口LoanCommand和具体的服务实现类ExtendOpenPersonAccountCommand等实现

    设计思考

    通过本次设计,达到了新增服务,只需要新增产品即可实现功能的目的,但是在函数式设计高速发展的今天,这种每次新增产品服务就新增产品实现类的做法还是不优雅,其中还是会通过DefaultProduct或者DefaultExtendProduct产生依赖关系,有一定的耦合性,会有许多xxxProduct.java的创建,而且提供的好多是相同的功能,比如授信申请放款申请等,随着产品数量的急剧增长,由最初的两三个膨胀到十几个甚至有超过二十的趋势,思考再三,决定再次优化接口设计。

    函数式接口设计

    从名称上来看很高大上,但实际没有什么高大上的东西,主要实现是在Java8+的基础执行的,函数式编程的实现,是对Lambda表达式的深入理解和使用,让功能的实现比较易读和简洁,让调用与被调用方和的耦合性降低

    开始设计

    1. 定义函数式接口服务类FunctionProduct,主要方法就是ProductInterface接口中服务的代理实现,是实现函数式方法调用具体实现类,通过委派模式,实现直接达到服务调用的目的,从而实现松耦合
    2. 定义具体的服务实现,授信申请AppCreditApplyFunctionAppCreditLimitSelectFunction即为具体的服务实现类
    3. 服务扩展,从贷款业务的发展来看,新接口新服务的出现必不可少,但是由于在此我们实现了松耦合,在基础接口ProductInterface中新增公共服务doServicexxx描述,即可在不同的产品中服务中,动态的进行具体的doServicexxx服务实现。如果是一批全新的服务可以通过扩展服务接口
      比如ExtendProductInterface实现,在不同的产品对应的服务进行实现
    4. 注意点:由于使用函数式松耦合的实现,所以产品划分,产品对应服务名的划分,做到统一规划,就显得尤为重要,规划方式:
      • 产品名+product为产品包的命名
      • 产品名+接口中对应的服务名+Command,作为具体的服务实现类命名
      • LoanCommand接口的execute方法作为具体服务的实现,方便以后对服务调用做埋点和统一拦截处理
    5. 接口存在的目的是为了与具体产品的具体服务实现做呼应,利于代码阅读和扩展,方便问题的定位

    设计优化

    由于上述设计在功能上已经实现了从接口抽象化到函数式合计的转变,但是由于对最终服务实现的beanName的选取写死,导致了硬编码问题的存在,为了使代码可读性、灵活性增强,设计了从接口参数中获取对应beanName的功能,具体实现思路是什么,
    具体有哪些实现,大概有以下几种:

    实现思路:

       App 产品相关服务 BeanName 维护
       维护方式: 交易码 + productCode + channelId = 对应产品对应的服务名
       实现意义: 为了实现不同产品不同渠道来源对于不同服务的精确定位
       当前产品 1000 -> App  01-> 内部
       交易码描述,不同产品,交易码含义一样,可扩展交易码
       例如: ln1001 -> appCreditApply (授信申请)
       例如: ln1002 -> appCreditLimitSelect (额度查询)
    

    实现方式

    • 第一种:存储在数据库中
      • 方案一:直接从数据库中读
      • 方案二:存在数据库中,在spring容器启动时加载到内存当中
    • 第二种:存在内存中
      • 方案一:在java文件中类似于Map<key,value>存储
      • 方案二:在properties配置文件中key=value方式存储
      • 方案三:如果项目自身集成携程 Apollo,可以实现线上,服务动态路由开关、服务的选取

    beanName的获取

    定义属性加载类BeanNameUtils,在容器启动时从对应的位置加载配置信息,在具体的交易到达后,根据请求参数信息,动态的
    获取对应的beanName,可以实现具体服务选取的功能。

    • 优点是:
      • 1.直接在内存中操作,效率较高
      • 2.在配置文件中描述beanName无冗余代码,可读性强,统一维护,不容易出错
      • 3.如果产品过多,可以按产品性质,拆分、组合、新增或者是删除配置文件,扩展性强

    代码实现

    由于本文代码量比较大,请关注博主GitHub,获取完整代码
    

    代码目录总览

    在这里插入图片描述

    完整代码和相关依赖请见GitHub

    https://github.com/dwyanewede/project-learn/tree/master/src/main/java/com/learn/demo/interfaces/loan/product

    公众号推荐

    在这里插入图片描述

    展开全文
  • redis缓存接口设计

    千次阅读 2016-12-29 15:12:09
    # 这是Java的Redis客户端工具类 - 2016/12/15 caisz ... - 命令接口声明 IRedisUtils : 声明给外界使用的工具类接口 - 抽象工具类 AbstractRedisUtils : 统一的工具类实现模板 ## java Redis客户端拥有2类常用的实
  • 这两年做了一款支付产品,重新定义了产品的对外开放平台 API 的形态,优化了产品体验,重构了支付平台,把接口设计的各种经验分享出来,免得大家设计不合理的接口,影响开发者使用,或者被开发者吐槽不专业、不好用...
  • 前后端分离的接口设计参考

    千次阅读 2019-08-26 00:18:27
    必须有一种统一的机制,方便不同的前端设备与后端... 这导致API构架的流行,甚至出现"API First"的设计思想。RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。 一、协议 API与用户的通信协议...
  • Interface 接口命令模式

    千次阅读 2017-07-18 16:06:59
    接口实现命令,降低耦合度  在软件开发中,我们经常需要向某些对象发送请求(调用其中的某个或某些方法),但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,此时,我们特别希望能够以一种松耦合的...
  • 设计模式——命令模式

    千次阅读 2018-04-07 11:30:22
    实际上是一种对命令请求、命令、执行三者的解耦设计。因此这个模式涉及到的角色中有调用者和接收者两个角色,是想设计成低耦合的状态,提高灵活性。涉及到的角色:抽象命令类:定义命令的统一接口。具体命令类:...
  • JAVA设计模式--命令模式

    万次阅读 2017-02-11 14:06:52
    一、什么是命令式 二、命令模式的适用性 三、命令模式的结构 四、命令模式的优点 五、认识命令模式 六、总结 一、什么是命令命令(Command)模式又叫作动作(Action)模式或事务(Transaction)模式,是一种对象...
  • 设计模式 命令模式 之 管理智能家电

    万次阅读 多人点赞 2014-04-27 22:10:11
    继续设计模式哈,今天带来命令模式。
  • 前言:这个实例源于赛灵思的官方HLS手册——(UG871),展示了如何基于已存在的Vivado HLS工程来创建一个TCL脚本命令和如何应用TCL接口(已存在的工程为"lab1",使用TCL新建立的工程为“lab2”),软件版本...
  • 目录 一、SpaceWire总线协议概述 1、物理层 ...3.3 时间接口 4 交换层 4.1 概述 4.2 链路初始化 4.3 链路状态 4.4 流量控制 4.5 发送字符的优先级 4.6链路错误及恢复 5 数据包层 6 网络层...
  • 接口设计模式

    千次阅读 2015-04-16 11:35:49
    Java接口是一系列方法的声明,... 接口体现了规范与实现分离的设计哲学,面向接口设计模式也日益深入人心,下面提供了几个完整的例子,演示了接口的优秀设计,并介绍了java常用的两种设计模式:工厂模式和命令模式。
  • 设计模式之命令模式

    千次阅读 2013-05-12 01:06:55
    我们常常会遇到这样一些问题:需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计,使得请求...
  • 本篇文章不涉及 XML 接口数据内容 : rpc-xml 啰嗦最近在写关于restful相关接口,学习之后,发现与之前所了解到的接口不大一样。从接触移动开发以来均是rpc-json方式进行开发,比如:// request POST /sayHello ...
  • 系统连接相机的接口用的是Camera Link接口,通过Camera Link接口把实时图像高速传输到FPGA图像采集卡中进行数据实时处理,并通过PCI接口实现采集卡和计算机之间的通信。本文主要研究数据采集系统 Cam-era Link接口...
  • C++中的接口设计

    千次阅读 2012-07-23 19:56:50
    在用C++写要导出类的库时,我们经常只想暴露接口,而隐藏类的实现细节。也就是说我们提供的头文件里只提供要暴露的公共成员函数的声明,类的其他所有信息都不会在这个头文件里面显示出来。这个时候就要用到接口与...
  • Java设计模式之命令模式

    万次阅读 多人点赞 2015-04-19 08:31:28
    继续23种设计模式系列,本文介绍命令模式。
  • 设计模式之——命令模式

    千次阅读 2020-01-10 00:08:55
    1.抽象命令角色:声明执行命令接口,拥有执行命令的抽象方法 execute()。 2.具体命令角色:是抽象命令类的具体实现类,它拥有接收者对象,并通过调用接收者的功能来完成命令要执行的操作。 3.接收者:执行命令...
  • 设计模式-命令模式

    千次阅读 2019-04-05 16:59:24
    命令模式的核心在于引入了命令类,通过命令类来降低发送者和接收者的耦合度,请求发送者只需指定一个命令对象,再通过命令对象来调用请求接收者的处理方法。 命令模式的结构: 命令模式包含如下角色: Receiver...
  • 在公司微信项目开发中,我主要负责消息中心的模板消息接口设计实现。主要是将微信公众号的推送模板消息功能放到公司的消息中心系统中,微信后台项目通过RMI调用接口,实现推送功能。在这里记录总结下当时的设计实现...
  • Java设计模式-命令模式

    千次阅读 2019-03-28 09:00:20
    命令模式
  • 1 PCI总线及其接口概述 PCI总线是高速同步总线,具有32bit总线宽度,工作频率是33MHz,最大传输率为132Mbyte/s,远远大于ISA总线5Mbyte/s的速率。PICMG(PCI工业计算机制造商联盟)制定的更加坚固耐用的Compact PCI...
  • Android设计模式之——命令模式

    千次阅读 2017-10-29 20:56:30
    一、介绍命令模式(Command Pattern),是行为型设计模式之一。命令模式相对于其他的设计模式来说并没有那么多的条条框框,其实它不是一个很”规范“的模式,不过,就是基于这一点,命令模式相对于其他的设计模式...
  • Golang命令设计模式(十四)

    千次阅读 2019-06-04 22:28:26
    上一篇责任链设计模式:...命令模式是一种数据驱动的设计模式,它属于行为模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处...
  • 设计模式 : 命令模式

    千次阅读 2018-04-10 22:24:02
    命令模式(Command) : 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作.示例代码:Command类,用来声明执行操作得劲接口abstract class Command{ ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 330,966
精华内容 132,386
关键字:

命令接口设计