接口还是继承》的相关内容

讨论interface在java编程中的作用

yhc0125的那个帖子本来只是讨论OCP的,所以我还是另外开一贴,专门邀请ajoo讨论interface在java编程中的作用问题。 先说说你的那个回贴。 firebody直接就晕过去了 我还是认真的看了看,然后决定不一条一条的回复你的回复了。这样反而不利于深入的讨论,Trustno1说这样的讨论甚是无趣,我也觉得,但是讨论这个问题的意义,还是要比“拿着尺子测量杆盘刀叉与餐桌距离”要大一些 ...
by 庄表伟 2004-09-24 浏览 (28176) 回复 (62) 关键字:

请教:关于接口的设计

很惊讶的发现自己的代码里面从来不写一个接口,所谓的设计就是就是划分好层次之后,就开始写各种各样的bean,需要一个新的业务功能就再业务bean中加入新的public函数。 但似乎很多场合,我看到的代码却是另一番情况,所有的调用都是通过interface,所有的返回都是interface,《设计模式》也强调系统的编写要针对接口进行。 大道理明白一些,但是实际情况是: 项目经验比较少的情况下,很难 ...
by jbaggio 2004-02-27 浏览 (42523) 回复 (86) 关键字:

Singleton和Static的缺点(重发)

femto 写道Singleton和Static的最重要缺点就是失去了面向对象的多态特性。 在项目中,一个用户在操作一条纪录时需要上锁,防止别人同时操作。 然后我们写了一个LockManager,在数据库里一个表写上某条纪录被某个人锁。 由于这个东西相当于Service一样,也不需要多件,所以我们把它写成了 Singleton 类,调用LockManager.lock() 和LockManger ...
by dlee 2004-04-17 浏览 (10208) 回复 (21) 关键字:

接口是一种正交分解技术

通过继承,系统中的所有关系被组织成了一个树状结构。随着树的层次越来越深,整个结构变得越来越不稳定,基类的小小变动随时可能会造成雪崩似的影响。作为一个整体,对象也越来越难以被重用。 从简单的意义上来理解,接口可以被认为是对对象(Object)的正交分解。如果使用继承, class CHuman { public void eat(){..} // human eat public void ...
by canonical 2005-03-02 浏览 (11170) 回复 (48) 关键字:

接口,抽象类的使用

以前在使用接口的时候,就知道它可以抽象系统模型,便于扩展。但到底什么时候使用接口,什么时候使用抽象类,我一直也不是很清楚。但最新做了一个项目,其中遇到抽象一个系统模型的时候,让我明白了他们的用途。废话少说,直接上Case了 需求:从文件中系统中读取数据,可支持从TXT文件,XML,XLS..... 这个是最初的需求,很简单,系统支持从多文件格式读取数据,首先抽象出一个AbstractFi ...
by 卒子99 2008-02-24 浏览 (3756) 回复 (20) 关键字: 接口 抽象类

什么是多态?为什么用多态?有什么好处?

转载:http://hi.baidu.com/python811022/blog/item/613a7b8d4369b116b31bba39.html多态可以分为变量的多态,方法的多态,类的多态.我这里强调的是类的多态,这是我们在以后的工作中经常回用到的 首先,有这样一个系统:有个学生工作从达内毕业了,作的还不错.买了辆捷达汽车.这个系统应该如何设计呢? 按照OO的思想,我们会抽象出来一个类,表示 ...
by liyanhui 2008-03-04 浏览 (344) 回复 (1) 关键字:

面向对象

面向对象的三个基本特征(讲解) 面向对象的三个基本特征是:封装、继承、多态。 封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 继承 面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它 ...
by luoyuefei 2007-09-06 浏览 (179) 回复 (0) 关键字:

面向对象的三个基本特征

面向对象的三个基本特征(讲解) 面向对象的三个基本特征是:封装、继承、多态。 封装 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 继承 面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它 ...
by glacier3 2007-07-05 浏览 (317) 回复 (0) 关键字:

php5的抽象方法和抽象类的理解

    前两天去一公司面试,他们给了一份试卷来考核php的知识.整份试卷大至不是太难,就是最后有一题是"任意写一抽象类并写出调用过程",由于,平常对抽象类的概念不很清楚,所以,也不敢乱写...唉,没pass..     这两天有点时间,看了看抽象类的资料,写一些对抽象方法和抽象类的理解,也算是亡羊补牢吧 :(  一 ...
by purpen 2007-07-11 浏览 (410) 回复 (0) 关键字: php abstract interface implements

面向对象的基本特征

面向对象的基本特征 一、继承 类与类之间的关系,通常子类继承基类中的所有方法和属性,但不能继承基类的构造方法。在调子类的构造方法时会先自动调用基类的构造方法。 二、封装 是指将方法和属性包装到一个程序单元中,这些程序单元以类的形式体现。 三、多态 多态可以分为重写和重载: 1、重写是指子类与基类的关系,子类可以重写基类中的方法,其方法名与参数以及反回类型都相同 2、重载是指同一个类 ...
by klygit 2008-07-11 浏览 (44) 回复 (0) 关键字:

没想到遇到这种低级错误

子类居然没有继承超类的非虚方法? class A { public abstract void foo(int x); public void foo(double a){} } class B : A { public override void foo(int x){}; } void main() { B a = new B; a.foo(1) ...
by oldrev 2007-04-26 浏览 (612) 回复 (10)

dotmars: .Net-like 的 D 类库

鉴于 phobos 和 tango 都让我很不爽,因此我准备按照 .Net Framework 的结构写一个中立于 phobos 和 tango 的类库 dotmars. 目前已经完成了如下部分(仅 windows 部分),可以通过编译,我还没时间测试。 D:\work\dotmars\trunk\src\dotmars\math.d D:\work\dotmars\trunk\src\dotm ...
by oldrev 2007-04-25 浏览 (1408) 回复 (31)

如何通过模板自动生成c++可以用的VTable

因为D的interface和c++的抽象类不兼容,所以要手动做一个VTable,有什么办法吗? class A { bool foo(int,char){return true;} int bar(){return 1;} void Release(){delete this;} } template VTable(alias T,p ...) { struct VTa ...
by heroboy 2007-09-28 浏览 (590) 回复 (14)

dxpcom v0.1 发布

由于windows上一直遇到DLL加载失败的问题,所以测试是在linux上进行的。 dxpcom v0.1下载地址 包括对xpidl的修改,增加了-m d选项,用来产生d接口。-m dwrap选项还在编写中,生成的代码现在还无法使用。 mozilla/xpcom/*.d大部分是用修改过的xpidl生成的,另有一些是使用htod工具转换的。 有空可以帮我测试一下,目前还不保证转换完全正确,但 ...
by qiezi 2007-04-16 浏览 (10948) 回复 (161)

使用 Spring 2.5 TestContext 测试框架(转)

概述 Spring 2.5 相比于 Spring 2.0 所新增的最重要的功能可以归结为以下 3 点: 1.基于注解的 IoC 功能; 2.基于注解驱动的 Spring MVC 功能; 3.基于注解的 TestContext 测试框架。 Spring 推荐开发者使用新的基于注解的 TestContext 测试框架,本文我们将对此进行详细的讲述。 低版本的 Spring 所提供的 Sp ...
by guoli83945 2008-04-02 浏览 (891) 回复 (0)

XJ: 一个扩展Java语言的方案

Java历来是一种以不变应万变的语言。在Java 5中,annotation的引入使得Java在某些特殊的应用场合(如企业应用)中能够进行定制。Annotations 可被看作是用Java核心技术来定义的"领域特定语言"(Domain Specific Languages,DSLs)。 Annotation本质上是一种 name-value 形式的绑定,仅限于它们所能表达的意义。它们不能定义新的 ...
by levis2000 2008-04-16 浏览 (1208) 回复 (3) 关键字: extensible java

Scala和设计模式

 在当前软件设计中最流行的要算GoF这本书中提出的各种设计模式。很多人认为,设计模式对于程序语言(特别是c++/Java)本身的不足之处或多或少有一些弥补,不过如果语言足够强大,模式也许没有必要。下面Peter Norvig的一个例子就非常有代表性。在有些语言中,使用设计模式在使代码变得自然和简洁,但是模式本身使用方便性也很重要。不妨让我们来看看Scala(一种类似Ruby/Lisp之类 ...
by yuesc 2008-04-01 浏览 (584) 回复 (0) 关键字:

四个有害的java习惯

John O'Hanley 的这篇文章列举了四个有害的java编码习惯,并提出了改正方案。 这四个习惯普遍存在于java程序员中,并且已经被广泛接受,大家都习以为常,流毒甚远。   1.对局部变量(local variables),字段(fields),参数(method arguments)这三种变量的命名没有区分,造成了代码的阅读困难,增加了代码的维护成本。   ...
by jolestar 2008-07-29 浏览 (6400) 回复 (55) 关键字:

相关问答

赞助商链接