J2EE中用了很多中间的东西,如接口,抽象类等但..

04-01-14 silver
J2EE中用了很多中间的东西,如接口,抽象类等(无论是模式中还是类,产品中)

但这样不麻烦吗?(是模式中的接口 如 工厂,代理模式等,为了复用?)

直接不好吗? 比如C/S中直接点,性能会多好啊!

    

sprsong
2004-01-15 17:45
面向对象的设计思想,各显神通的设计模式初看很麻烦,但却是最有效的化复杂为简单,话混乱为清晰的手段。虽然设计的时候麻烦点,但是当它用简洁的语句表达复杂逻辑的时候,简直就是一种艺术。

看似复杂的设计,正是这种设计帮助我们把混乱复杂的逻辑分解成一个个简单的小问题。

假如你的程序要处理方块或圆两种图形,假如你当前求到面积和边长,你要怎么作最好的方法莫过于写上if是圆and面积{}else if是方and面积{}……,你的程序里任何在方块和圆不同的地方都要用if else语句,很长的程序,很复杂的逻辑,以后方块改成三角了,就要察看所有的程序,更改所有和形状有关的东西。

如果使用面向对象的方法,就可以把所有和方块相关的东西都放在方块对象力,和圆相关的东西都放在圆的对象里,你的程序里只要简单的调用圆.get面积()或者方块.get面积()方法就OK。以后方块变成三角了只需用一个三角对象替换方块对象就OK了。

可是还是不爽,在你的程序里还有判断是方块对象,还是圆对象。特别是当你不知道传进来的会是什么对象的时候,因此你不得写一个以方块的参数的程序和一个以圆为参数的程序。

如果引入接口的概念就解决了。定义一个接口为“图形”,方块和圆都实现这个接口。然后你就不再需要知道你操作的是圆还是方块,你把他们统统当做“图形”来对待,求面积和边长的时候只要调用图形接口的求面积和边长的方法就OK了,接口会返回正确的结果,所以你的程序就清净了,简单的2句话替代了之前错综复杂的语句。

这还是两个类型的图形,如果你要处理几十种图形的话,这种方式的简洁清晰度和节省的代码是不可限量的。

sprsong
2004-01-15 17:50
假如有10中不同的图形,要进行5中不同的操作,每种操作平均调用两次,那么传统的代码你需要写10×5×2=100段if语句,错综复杂。如果某些操作之间再有些互动的因素,最后几乎是不可能实现的代码。

但是利用面向对象、接口、设计模式的方法。你的主程序5种操作只需要5行就可以实现。而复杂的逻辑就分散到10个对象和每个对象里的5个方法里去,变得简单多了。如果再利用继承,那么很可能你只需要写10几个方法就完成了编程。

silver
2004-01-16 17:48
你说的都是面向对象,或接口的好处!

我是想:接口用的太多了,是不是过了点,

有没有一种平衡的状态?

silver
2004-01-16 18:01
to : sprsong,在上地哪个公司?我在大钟寺附近!切磋切磋?

猜你喜欢
2Go 1 2 下一页