《接口还是继承》的相关内容
相关讨论
讨论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) 关键字:
相关博客
什么是多态?为什么用多态?有什么好处?
转载:http://hi.baidu.com/python811022/blog/item/613a7b8d4369b116b31bba39.html多态可以分为变量的多态,方法的多态,类的多态.我这里强调的是类的多态,这是我们在以后的工作中经常回用到的 首先,有这样一个系统:有个学生工作从达内毕业了,作的还不错.买了辆捷达汽车.这个系统应该如何设计呢? 按照OO的思想,我们会抽象出来一个类,表示 ...
by liyanhui 2008-03-04 浏览 (344) 回复 (1) 关键字:
面向对象的三个基本特征
面向对象的三个基本特征(讲解)
面向对象的三个基本特征是:封装、继承、多态。
封装
封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。
封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
继承
面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它 ...
by glacier3 2007-07-05 浏览 (317) 回复 (0) 关键字:
php5的抽象方法和抽象类的理解
前两天去一公司面试,他们给了一份试卷来考核php的知识.整份试卷大至不是太难,就是最后有一题是"任意写一抽象类并写出调用过程",由于,平常对抽象类的概念不很清楚,所以,也不敢乱写...唉,没pass..
这两天有点时间,看了看抽象类的资料,写一些对抽象方法和抽象类的理解,也算是亡羊补牢吧 :(
一 ...
by purpen 2007-07-11 浏览 (410) 回复 (0) 关键字: php abstract interface implements
相关圈子讨论
没想到遇到这种低级错误
子类居然没有继承超类的非虚方法?
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) 关键字:

