0 0

java Web开发的疑惑3

自己也做了两三个项目了但每次都是这样的:
1;写dao
2;实现dao
3:写service
4;在action中调service
5;用jsp 或freemarker

在Java中的继承怎么没有啊(除了框架)
都要用到的写个utilService;



问题补充:
其实在写代码的过程中有好多的重复的代码(重复的业务)(即使我写了工具类),所以我想把继承搞进来。但又怕还是有好多重复的代码??我想问问牛牛;
你们是怎样处理重复的代码的(重复的业务)
(我们公司今天放假,我打算买个《重构 改善既有代码的设计>>)
问题补充:
继承只是代码复用的一种方式,Java是单继承的。所以继承使用时不够灵活。 
相对来说组合和代理更方便使用。


你说的组合是不是搞(工具类啊eg;utilService)
你说的代理是自己写囊?还是用框架啊,看网上说aop是对oo的补充。可以提高代码的复用

问题补充:
谢谢大家;
我写了个抽象类;感觉好怪,大家来看看;

public abstract class AbstractCreateHtml {

private Configuration cfg=null;//freemarker
private Template   t=null;//模板
private Writer   out=null;//输出流
private String   templatePath=null;//模板的路径
private String        templateName=null;//模板的名字
private String   toPath=null;//输出的路径



public Writer getOut() {
return out;
}




public void setOut(Writer out) {
this.out = out;
}




public String getTemplatePath() {
return templatePath;
}




public void setTemplatePath(String templatePath) {
this.templatePath = templatePath;
}




public String getTemplateName() {
return templateName;
}




public void setTemplateName(String templateName) {
this.templateName = templateName;
}




public String getToPath() {
return toPath;
}




public void setToPath(String toPath) {
this.toPath = toPath;
}




//静态化服务的主方法
public abstract void createHtml (HttpServletRequest request)throws Exception;




//初始化freemarker
protected Configuration getCfg(HttpServletRequest request){
if(cfg==null){
   cfg=new Configuration();
   cfg.setServletContextForTemplateLoading(request.getSession().getServletContext(), templatePath);
}

return cfg;
}
//初始化template
protected Template getT(HttpServletRequest request)throws Exception{

if(t==null){
if(cfg==null){
cfg=this.getCfg(request);
}
t=cfg.getTemplate(templateName);
}

return t;
}

//得到输出流
protected Writer getOut(File file){
try {
if(out==null){
out=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file),"utf-8"));

}
} catch (UnsupportedEncodingException e) {

e.printStackTrace();
} catch (FileNotFoundException e) {

e.printStackTrace();
}
return out;
}

}
2009年1月14日 10:43

9个答案 按时间排序 按投票排序

0 0

其实,如果业务很类似,可以用范型来解决你的疑惑。前些日子我做一个比较简单的项目,基本上就是一些业务实体的CRUD,以及一些固定的页面流程,我已经用了SSH,但是发现重复内容还是很多,所以就写了范型的action service dao  其中service和dao的功能范型解决的很好,必要时候再继承扩展就行,但是action层比较繁琐,其中的跳转页面,包括解析表单都是要再解析的时候获得类的对象的,我在这部分运用了反射机制。最终的效果还是比较好的,仅供参考

2009年1月19日 13:11
0 0

有什么怪的?

2009年1月14日 15:57
0 0

引用
你说的组合是不是搞(工具类啊eg;utilService)
你说的代理是自己写囊?还是用框架啊,看网上说aop是对oo的补充。可以提高代码的复用

还是搬出GoF 《设计模式》两个设计原则吧:
1.针对接口,而不是实现;
2.优选组合,而不是继承。
继承如果由于继承层次太多,导致子类呈爆炸性增长,导致软件的复用和可维护性不好。
设计模式中许多模式,都用到了组合和委托(delegate),而不是代理(proxy)。

2009年1月14日 11:43
0 0

OO更好;
继承刚开始也是为了复用代码,但却引入了很多缺点;

对OO来说,组合更好;

2009年1月14日 11:36
0 0

继承只是代码复用的一种方式,Java是单继承的。所以继承使用时不够灵活。
相对来说组合和代理更方便使用。

2009年1月14日 11:20
0 0

引用
其实在写代码的过程中有好多的重复的代码(重复的业务)(即使我写了工具类),所以我想把继承搞进来。但又怕还是有好多重复的代码??我想问问牛牛;
你们是怎样处理重复的代码的(重复的业务)
(我们公司今天放假,我打算买个《重构 改善既有代码的设计>>)

这本还行,还有一本《重构到模式》,更OO,更模式一些。

2009年1月14日 11:17
0 0

继承是次要的;
OO更重要;

2009年1月14日 11:05
0 0

不是所有问题都要用继承来解决的。

设计的一个重要原则“组合优于继承”。

2009年1月14日 10:56
0 0

引用
自己也做了两三个项目了但每次都是这样的:
1;写dao
2;实现dao
3:写service
4;在action中调service
5;用jsp 或freemarker

在Java中的继承怎么没有啊(除了框架)
都要用到的写个utilService;

凡是可以写Java程序的地方都可以用继承了。只不过,你没有用OO的思想考虑问题罢了~

2009年1月14日 10:51

相关推荐

    Java_Web轻量级开发全体验.pdf

    2. Java Web开发的学习路径:文档通过提问的方式引出了学习Java Web开发时可能遇到的困惑,并提出加入Java学习群以获取知识分享和解答疑惑的建议。这揭示了Java Web开发学习者需要有明确的学习方向和获取知识的途径...

    Java开发利器Myeclipse全面详解

    在Java开发中,存在着多种框架技术,例如Struts、Hibernate、Spring和Struts2等,它们是构建复杂Java Web应用的基础。MyEclipse集成了对这些框架的支持,使得开发者能够更加方便地在IDE中集成和使用这些框架,从而...

    基于CDIO-OBE的《Java Web》课程教学资源建设.zip

    CDIO-OBE结合的应用于《Java Web》课程中,意味着教师需要设计和实施能够让学生通过实践来掌握Java Web开发的各个环节的教学活动。这包括理解HTTP协议、Servlet和JSP的基本概念,以及如何使用MVC(Model-View-...

    零点起飞学Java随书源代码

    这种互动学习的方式对于深化理解和解决疑惑非常有益。 总的来说,这个压缩包提供了一条从理论到实践的学习路径,帮助Java初学者巩固所学知识,提升编程技能。通过逐步解析和修改源代码,学习者将能够更好地掌握Java...

    Java开发技术问题汇集

    Java开发技术问题汇集是一个集合了Java开发者在实际工作中可能遇到的各种问题及解决方案的资源库。这个压缩包包含的文件很可能涵盖了从基础语法到高级框架的广泛主题,涉及到Java、Spring、Struts、Hibernate以及JSP...

    java培训讲座(怎么学java)

    第二学期进一步深入,Oracle数据库基础应用、面向对象编程(OOP)和Java Web开发是核心内容。OOP是Java的核心特性,通过S2302课程,学习者可以掌握类、对象、继承、多态等概念。Java Web开发(S2303)则涵盖了...

    高职院校线上线下混合式教学实践探讨——以《Java Web程序设计》为例.pdf

    教师可以设计一系列实际的Web开发项目,让学生在完成项目的过程中学习和掌握相关知识。在线上部分,学生可以预习理论知识,观看讲解视频,自我测试,而线下则侧重于项目实践和讨论,教师指导,及时解答疑惑。 2.2 ...

    Java开发实战1200例

    10. **Java EE应用开发**:介绍Servlet、JSP、EJB等技术,为Web应用开发提供实践经验。 通过《Java开发实战1200例》的光盘源代码,读者可以跟随每个实例逐步学习,实践编程,遇到问题时可以直接查看或运行代码,...

    Java JavaWeb 数据库等开发参考手册二

    《Java JavaWeb 数据库等开发参考手册二》是一份综合性的开发资源,涵盖了JavaEE...而这些都离不开像《Java JavaWeb 数据库等开发参考手册二》这样的综合资源,它如同开发者身边的宝典,随时解答疑惑,指引前行的方向。

    Java入门学习指导

    10. **掌握MVC框架**:MVC(Model-View-Controller)模式是Java Web开发中常用的架构模式。学习如Spring MVC、Struts等流行框架的使用方法,可以极大地简化Web应用的开发过程。 11. **学习ORM框架**:ORM(Object-...

    基于java的教务查询系统毕业设计(源代码+数据库+部署文档+部署视频).zip

    在Java Web开发中,通常会采用MVC(Model-View-Controller)架构模式,项目可能使用了Spring Boot或Struts等框架来构建后端逻辑,JSP或Thymeleaf等技术处理前端展示,而数据库操作则可能借助MyBatis或Hibernate等ORM...

    简易静态Web服务器

    在实际的Web开发中,更常见的服务器如Tomcat,不仅支持多种动态语言(如Java Servlets和JSP),还有强大的性能和安全特性。不过,理解这个简单的Web服务器有助于你更好地掌握Web服务器背后的机制,为后续深入学习...

    implate信息

    可能包括Java教程、示例代码、项目文档等,这对于学习Java,尤其是与Web开发相关的Java技术,或者理解"implate"项目的实现细节会非常有帮助。 【压缩包子文件的文件名称列表】中提到了"java静态页面图片2",这可能...

    外文翻译-Java and the Internet.doc

    Java Servlet和Java Server Pages (JSP) 是Java在Web开发中的进一步发展。Servlet是服务器端的Java程序,用于扩展服务器的功能,处理来自客户端的请求并返回响应。JSP则提供了更便捷的方式来创建动态网页,允许将...

    java javamail 发送邮件 源代码 例子

    Java/javamail发送邮件是Java...总的来说,这些文件覆盖了Java Web开发的多个主题,包括邮件发送、Ajax、MVC模式、数据对象、Excel操作以及客户端脚本语言JavaScript。学习这些内容有助于提升你的Java全栈开发能力。

    java毕业设计&课设-百思不得姐.zip

    对于想要提升Java Web开发技能的学生,这是一个极好的实践案例。通过深入研究这个项目,不仅可以掌握Java编程,还能理解Web应用的工作原理,增强问题解决能力,为未来的职业生涯打下坚实的基础。同时,助教老师的...

    java-1-sample.zip_java实例

    另外,Java还支持Web开发,Servlet和JSP(JavaServer Pages)技术能帮助你构建动态网站。 总之,"java-1-sample.zip"中的资源为初学者提供了一条全面学习Java的路径,从基础知识到实际应用,覆盖了广泛的主题。通过...

    Java学习从入门到精通

    总的来说,Java学习从入门到精通是一个系统的过程,涵盖了JDK的使用、文档阅读、应用服务器的理解以及像Tomcat这样的Web容器的配置和管理。通过不断实践和深入研究,你将逐步掌握这门强大的编程语言,并能构建复杂的...

    java学习心得4000字.doc

    #### 三、Java Web开发技能的培养 对于希望成为Java Web程序员的人来说,以下几点尤为重要: 1. **JSP/Servlet/Java Bean**: - **JSP**:掌握JSP的基本知识,了解Servlet和Java Bean的工作原理。 - **注意**:...

Global site tag (gtag.js) - Google Analytics