惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hugging Face - Blog
Hugging Face - Blog
云风的 BLOG
云风的 BLOG
大猫的无限游戏
大猫的无限游戏
M
MIT News - Artificial intelligence
L
LangChain Blog
阮一峰的网络日志
阮一峰的网络日志
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Recent Announcements
Recent Announcements
IT之家
IT之家
Google DeepMind News
Google DeepMind News
罗磊的独立博客
爱范儿
爱范儿
Last Week in AI
Last Week in AI
人人都是产品经理
人人都是产品经理
U
Unit 42
MongoDB | Blog
MongoDB | Blog
S
SegmentFault 最新的问题
B
Blog
博客园 - 叶小钗
月光博客
月光博客
Stack Overflow Blog
Stack Overflow Blog
V
Visual Studio Blog
C
Check Point Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - goodbaby

辞职了 爱上无聊 读程序有感 把网通的网关接口程序重写了 深深陷入困境 我的AOP初步 静态和动态控件回递数据的处理差别 membership and roleship 我的asp.net 2.0初体验 一点技术,一点生活 简单体验多层应用 基于服务的架构 变化,感触 又可以进自己的blog了 浅谈asp.net UI 浅谈验证码 浅谈基于角色的安全 浅谈数据库里的自引用 简单的URL重写
我的技术和观点
goodbaby · 2005-07-28 · via 博客园 - goodbaby
 

我的asp.net vs jsp,以前用了很久的asp.net,现在因为工作需要使用jsp,感觉jsp还是传统的以提交然后取直方式处理数据的,这样的好处是可以获取比较方便的低级别处理,但同时缺少好的一些封装机制,使一些东西实现起来需要做很多重复的事情。Asp.net的良好的面向对象处理方式在这点是感觉很好,同时他影藏了一些低级别的处理也带来了一些不便。但asp.net 更面向对象,而且他的模型是很不同的。在jsp中你用使用request.getParameter(),这样的东西来得到直,感觉不大舒服,而且不支持继承。在一个公共任务分页中,asp.net里我把分页逻辑写成一个用户控件,jsp里有对等的<jsp:include>但是两者最大的区别在与用户控件是一个对象,我可以以面向对象的方式设置这个对象,我以前的做法是把业务对象实现一个分页接口,这样可以是前面的代码减少很多。

SpContrl.PageSize = 15;

SpContrl.SearpatInterface = myBussinessObj;(这里可以是一个业务外观)

Repeater1.DataSource = myBussinessObj.getData(PageIndex,PageSize);

Repeater1.DataBind();

这样完成了页面的分页显示,就简单的几行。

jsp中我要这样:

<jsp:include page="SPage.jsp">

 <jsp:param name="RecordCount" value="<%= RecordCount%>"/>

 <jsp:param name="PageNumConrent" value="<%= PageIndex%>"/>

 <jsp:param name="PageSize" value="<%= PageSize%>"/>

 <jsp:param name="PageName" value="myPage.jsp"/>

 <jsp:param name="ExtraPath" value="<%= "Type=" + myType%>"/>

 </jsp:include>

由于没有代码分离很象面条,但jsp还是很好用的,两者各有各的好处,个人更喜欢asp.netJSF就有点象 asp.net,但好象asp.net先人一步。

Asp.net里的httpmodulejsp里就是filerservlet实现,前端控制器httphandle,  jsp里就是servlet,这两个作为前端控制器和扩展(如: .xxx的访问)。

关于一些基础的架构,目前我还没接触struct,不好说。

有趣的JDBC

由于需要,我不得不把SQL防在string里,不用procedure,但对于相当长的SQL,在string里就出现了一些问题,数据库是SQL ServerSQL中用到了很多的在运算时的参数,这在过程里很好实现,CallStatment(name(???))这样,在 SQL Server里参数是这样@Parameter1

我们知道要一一对其,但一些中间直怎么办,@parameter2要使用多次,怎么去对其,开始出现了很多错,同事也协助我,但还是不行,得出的结论是 jdbc不支持,后来我找到方法这样的,以string方式里很简单

declare @par1

set @par1=?

declare @par2

set @par2=?

这样就象使用过程一样了,不过注意对齐。

关于哑数据对象还是贫血:

一般情况下一些对象应该有他数据很行为,但有的对象没有行为,这种对象叫哑数据对象,有一个程序是这样的,有很多的没有行为的对象,也就是说只有成员变量和一些getter setter方法,仔细阅读代码可以发现,这些对象在其他的类里面被付直,在一些对象里又被取出,但这些对象都有一个共同点就是要被解析成二径制数组。结果在一个类里就有这样的许多方法:a(A)

b(B)

c(C)

。。。。。

a , b, c分别取得A B C的二径制数组处理而且处理方式都是一样: 解析 发送。我的想法是其实a b c都是一个行为,a b c是一个方法,这些A  B C应该以各自的方式返回自己的二径制表示而不是哑数据对象。

象这样 interface myInterface

{

  getBinaryFormat();

}

                 A implements myInterface

{

   getBinaryFormat(){return …};

}

                 B implements myInterface

{

   getBinaryFormat(){return …};

}

                 C implements myInterface

{

   getBinaryFormat(){return …};

}

现在a,b,c整合成一个方法:

myMethod(myInterface obj)

{

   data = obj.getBinaryFormat();

   do same work;

}

对过martin flower的东西就知道,以类来封装数据结构然后写一些方法类来处理这种做法是贫血。Pet Shop被认为是一个反面教材,有人重构了,也可以说重写。有很多想法我说不出来,我感觉我的同事很棒,比我牛多了,好好向他们学习。

我的体会以前我是觉得技术为先但现在是业务驱动技术。

已经学习设计模式和重构一年了,感触颇深,我仍然孜孜不倦。努力向别人学习。