什么是面向协议编程,Java语言深入讨论什么叫面向接口编程

1 , Java语言深入讨论什么叫面向接口编程首先,JAVA是一种完全面向对象的语言!像C和C++ , 只不过它们分别是面向过程的和不完全面向对象的语言!而伪编程语言并不是一种真正的语言!它是在数据结构和算法设计等课程中借助一种具体的语言(比如C、C++或JAVA)来阐述其思想,旨在表达出解决一类问题的逻辑 。但有些问题过于抽象或复杂,抑或是问题的某一局部对全局来说不太重要,这就导致了无法或不方便用完整的程序来讲述 , 于是就用我们的自然语言加上一些专业符号来描述,让你明白整个问题的解决方案是怎么回事就行了!因为解决方案往往是针对一类特殊的问题 。至于某些细节的实现,就要你去自己解决了!
2,CCC分别是什么有什么区别C# 是面向对象的语言可以更好的模拟现实社会 , 而他的三的特性 封装 继承 多态 更加显示器的特效锐英源指导C,C++和C#都非常好 。编程慧助 回答采纳率:11.7% 2010-08-21 14:14-------信这个,你就等着做白痴吧他们分别是三种编程语言 。区别:c是面向过程的编程语言 。C++和C#是面向对象的编程语言 。他们都是高级语言 , C++是从C语言衍生出来的,C++对C是完全兼容 。C#是微软提出的一种主要运用与网络方面的编程,它的主要应用面和JAVA语言一样 。C#和JAVA都是需要一个环境才能编写运行 。而C和C++是不需要的 。c语言是基础编程语言c++更多的是面向对象和系统的C#更多的面对网络和协议层C是面向过程的语言,适合底层开发,如嵌入式开发;C++在C的基础上新增了面向对象的思想,但还不是纯粹的面向对象语言;C#是面向对象语言,是微软为了与JAVA语言竞争市场份额提出的,C#多用于web开发 。c和C++输入底层的语言 一般都用于编写硬件的程序 。C#是面向对象语言!开发中可以使用VS工具里面自带的控件也可以自己开发控件 , 开发的周期相比较C和C++周期要快!我就在学C#看看书网上刚看看视频理解概念
3,什么是面向接口编程在一个面向对象的系统中 , 系统的各种功能是由许许多多的不同对象协作完成的 。在这种情况下,各个对象内部是如何实现自己的对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系统设计的关键 。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,这也是系统设计的主要工作内容 。面向接口编程我想就是指按照这种思想来编程吧!实际上,在日常工作中,你已经按照接口编程了,只不过如果你没有这方面的意识 , 那么你只是在被动的实现这一思想;表现在频繁的抱怨别人改的代码影响了你(接口没有设计到) , 表现在某个模块的改动引起其他模块的大规模调整(模块接口没有很好的设计)等等 。Booch先生那天谈到Interaction Designer,它就是指做这类设计的人 , 只不过层次更高一些 。我想目前我们的软件设计队伍中,这类人是最缺乏的人才之一 。1.关于接口的理解 。接口从更深层次的理解,应是定义(规范,约束)与实现(名实分离的原则)的分离 。我们在一般实现一个系统的时候,通常是将定义与实现合为一体 , 不加分离的,我认为最为理解的系统设计规范应是所有的定义与实现分离,尽管这可能对系统中的某些情况有点繁烦 。接口的本身反映了系统设计人员对系统的抽象理解 。接口应有两类:第一类是对一个体的抽象,它可对应为一个抽象体(abstract class);第二类是对一个体某一方面的抽象,即形成一个抽象面(interface);一个体有可能有多个抽象面 。抽象体与抽象面是有区别的 。2.设计接口的另一个不可忽视的因素是接口所处的环境(context,environment) , 系统论的观点:环境是系统要素所处的空间与外部影响因素的总和 。任何接口都是在一定的环境中产生的 。因此环境的定义及环境的变化对接口的影响是不容忽视的,脱离原先的环境,所有的接口将失去原有的意义 。3.按照组件的开发模型(3C),它们三者相辅相成,各司一面,浑然一体,缺一不可 。面向对象是指,我们考虑问题时 , 以对象为单位,考虑它的属性及方法面向过程是指,我们考虑问题时,以一个具体的流程(事务过程)为单位,考虑它的实现接口设计与非接口设计是针对复用技术而言的,与面向对象(过程)不是一个问题我认为:UML里面所说的interface是协议的另一种说法 。并不是指com的interface,CORBA的interface,面向接口编程是先把客户的业务逻辑线提取出来 , 作为接口,业务具体实现通过该接口的实现类来完成 。当客户需求变化时,只需编写该业务逻辑的新的实现类,通过更改配置文件中该接口的实现类就可以完成需求,不需要改写现有代码,减少对系统的影响 。面向对象和面向接口不矛盾 。面向接口是指当我们使用一个功能时 , 我们应该尽可能放弃不必要的假设和要求,比如“用一个容器来存储一串数字”,那么我们不应该提示额外要求“我们应该用一个 list 还是 set” 而是尽量只提出要求 “我们需要一个容器”,这样一来,我们就用下面这样的方法,注意的是,c 的创建和使用可以是在不同的地方然后当成参数或成员变量传递给使用者 , 对于使用者来说“这是一个你想要的容器”,至于它具体是哪种容器使用者不应该关心它,如果使用者强制需要一个 set 那么应该修改需求说明成为“我们需要一个保证唯一性的集合”;为什么我们尽量不提出非必要的要求呢?当软件越来越复杂或者或者达到松耦合的要求时我们应该尽量避免把一个东西弄成一个固定的样子 , 这防碍将来对它进行修改或扩充,“尽量只提出功能性的要求而不是限制别人必要把代码写成什么样子”,“功能性的要求”其实就是就是对应到面向对象的“接口” , 一般来说当我们依赖其它人写的代码时我们应该把它看成一个组件,它的内部实现方法我们并不关心,只要求实现功能的人和使用功能的人使用了相同的接口就可以了,这就可以让实现功能的人发挥它的想象力在组件的性能和稳健性和灵活性及扩展性上有机会做到更好 ,如果你已经知道了并且依赖这个实现的细节那么这个组件的每次修改都可能导致使用它的代码产生新的问题 , 那么这就是一个严重的问题,软件的质量就不能保证,我们应该支持积木式的组件供应方法,只需要修改一个配置就成把一个组件替换成另一个 , 这就是spring 的配置文件给我们最直观的印象,这时使用这个组件的代码不会受到影响,比如同样一个加密的组件,使用不同的算法的安全程度和性能不同,但都能达到通信双方的安全要求,这样一来使用者的代码不需要知道细节也不用修改就能通过修改 spring xml 达到替换加密组件的要求:collection c = ...; 得到一个集合 。c.add(new integer(5)); // 存数字 。【什么是面向协议编程,Java语言深入讨论什么叫面向接口编程】

    推荐阅读