论坛首页 Java企业应用论坛

面向行为编程!继面向对象的新的软件开发模式

浏览 32994 次
该帖已经被评为新手帖
作者 正文
   发表时间:2011-02-04  
这样是给定义接口者减轻了负担,但是接口的定义就是目录 模糊了目录  维护怎么办 大项目就不适合
0 请登录后投票
   发表时间:2011-02-04  
没有新东西,只不过把参数放到parameter里了而已。

框架看起来简单、统一了,实现上增加了很大的复杂性,系统越大越难维护,直至崩溃。
0 请登录后投票
   发表时间:2011-02-04  
coocle 写道
没有新东西,只不过把参数放到parameter里了而已。

框架看起来简单、统一了,实现上增加了很大的复杂性,系统越大越难维护,直至崩溃。

确实,不做开发的人总想着做得多灵活多通用,不管实际需求有没有,结果被这种人指挥下做的东西跑得越来越慢,bug越来越多,结果远远不如单独为确定好的需求分别开发。
框架就好比瑞士军刀,你不能把电钻,手机,空调遥控器,尿布垫什么的都装在瑞士军刀上。
0 请登录后投票
   发表时间:2011-02-06  
弄成事件触发,写个监听岂不是更好。
0 请登录后投票
   发表时间:2011-02-10  
dengzhangtao 写道
这样是给定义接口者减轻了负担,但是接口的定义就是目录 模糊了目录  维护怎么办 大项目就不适合

+1

设计和实现尽量不要偷懒,除非是一个不需要维护的项目。
0 请登录后投票
   发表时间:2011-02-12  
想法是很不错!但是我觉得好像有些不对劲!!!具体是哪里我也说不出来!!!
0 请登录后投票
   发表时间:2011-02-19   最后修改:2011-02-19
我提个建议,通过类型检查提高可维护性

public interface Result<A,D,R,T extends Throwable> {
    void setAlgorithm(A algorithm);
    void setData(D data);
    R getResult() throws T;
}

public interface Algorithm<A,D,R,T extends Throwable,RT extends Result<R,?,?,?>> extends Result<A,D,R,T> {

}

public interface Data<A,D,R,T extends Throwable,RT extends Result<?,R,?,?>> extends Result<A,D,R,T> {

}

0 请登录后投票
   发表时间:2011-02-21  
# public interface Algorithm<A,D,R,T extends Throwable,RT extends Result<R,?,?,?>> extends Result<A,D,R,T> { 
#  
# } 
有这种继承的写法吗?集成多个类不是extends后面加多个类名,类名与类名之间用逗号隔开吗?
0 请登录后投票
   发表时间:2011-02-21  
我没看太明白,我的理解应该是业务逻辑处理与功能逻辑处理应该是被分开的。
就拿登录来说,login是一种行为,但login要处理的功能有很多种,可以再细分到不同的功能控制,比如说验证检查,数据查询等,各功能的提供可以根据一种行为要求来订制何种处理。
且行为应该是属于对象,被对象所包含的,如楼上所说的,行为多了放在一起就有点泛滥了,但分门别类定义在各自所属的对象里,就不会了,比如人和车,都有各自的行为,定义在各自的类里就不会出乱子,而且人是被继承的,可以分很多种人,同样的行为也可以有不一样的处理。
0 请登录后投票
   发表时间:2011-02-24  
首先赞一下楼主的创新精神,但是还是有很多疑问。

参数和返回值是什么,参数和返回值就是规范,你把规范写到代码里不比写到文档里好?还有编译器替你检查,多方便。
java为了通用,可以使用泛型,可以使用重载,可以使用覆盖,没必要把方法模仿成弱类型的。强类型虽然限制较多,但是也有个好处,编译器会告诉你很多低级错误。不然int你传个long进去,系统怎么挂的都不知道。就算你要加参数,重载一下就好了,也不需要你改全部的代码。
非要一个方法能让所有人都能用,参数全部Object...,返回值全部Object不就行了么。
还有,所有人都用一个login会不会太容易搞混?一个login不包含任何语义,也许customer.login和manager.login根本就是两个没有任何共同点的行为。

个人意见,请楼主考虑一下。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics