在线245人
首页
主题表
培训咨询
标签
精华
查搜
注册
登陆
用户
自动登陆
密码
新用户注册
忘记密码?
首页
»
论坛
»
设计模式、框架和架构
上一主题
现在的应用是基于struts+spring+hibernate, postgresql, tomcat5.5, apache2.2. 网站是一个social network, 有3个主要的应用,包括..
下一主题
一个处理流程比较多变,过程比较长的程序,怎样设计可以使对各种变化改变最方便,改变最少?
Go
共有
1
回复 /
1
页
前往下页:
scorpiozyh
悄悄话
发表文章: 1
注册时间: 2008年03月08日 12:16
写了一段代码。不知道对接口与类的应用是否正确,请指教!
2008年03月08日 12:20
写了一段“导出Excel报表”的代码。有些看法不知道对否,请大家指教!
由于某些简单报表的表头、标题、表体可以通用。另外一些复杂的表报无法通用。
1.设计接口(ExportExcel)抽象所有报表的导出
2.简单报表设计一个抽象类(SimpleExportExcel implements ExportExcel )实现通用性导出。
3.复杂报表直接implemets ExportExcel .
代码简化显示如下:
/*通用报表*/
public interface ExportExcel{
public void writeTH(String th);//写表头 @param 报表表头
public void writeTB(List tb);//写表体 @param 报表表体
public void writeTitle(String title);//写标题@param 报表标题
public void export(Report report);//画报表 @param待导出报表
}
/*简单报表*/
public abstract class SimpleExportExcel implements ExportExcel {
public void writeTH(String th){
//@todo 通用表头的实现
}
public void writeTB(List tb);//无法实现通用,交给子类实现
public void writeTitle(String title){
//@todo 通用标题的实现
}
public void export(Report report){
writeTH(report.getTh());
writeTB(report.getTB());
writeTitle(report.getTitle());
}
}
/*简单报表实现例:VIP用户报表*/
public class VipExportExcel extends SimpleExportExcel {
public void writeTB(List tb){
//@todo 通用表体的实现
}
}
/*复杂报表实现例:客户业务报表*/
public class CustExportExcel implements ExportExcel {
public void writeTH(String th){
//@todo 客户业务报表表头的实现
}
public void writeTB(List tb){
//@todo 客户业务报表表体的实现
}
public void writeTitle(String title){
//@todo 客户业务报表标题的实现
}
public void export(Report report){
writeTH(report.getTh());
writeTB(report.getTB());
writeTitle(report.getTitle());
}
}
/*应用实例*/
public static void main(String args[]){
……
Excel excel = ExportFactory.getExcel("CustExportExcel");
excel.export();
……
}
在论坛上经常有看到Abstract class 与 interfact的讨论。在无法抉择时是否可以同时使用Abstract class 与 interfact,interfact作为功能的抽象,Abstract class作为通用性的实现。
killer
悄悄话
发表文章: 110
注册时间: 2007年07月17日 15:40
re:写了一段代码。不知道对接口与类的应用是否正确,请指教!
2008年03月24日 09:27
>>>/*通用报表*/
public interface ExportExcel{
public void writeTH(String th);//写表头 @param 报表表头
public void writeTB(List tb);//写表体 @param 报表表体
public void writeTitle(String title);//写标题@param 报表标题
public void export(Report report);//画报表 @param待导出报表
}
writeTH(String th); writeTB(List tb); writeTitle(String title)都不应该暴露,只能暴露导出报表的接口。
>>>public void writeTB(List tb);//无法实现通用,交给子类实现
这个是抽象方法,应该加上abstract修饰符吧
共有
1
回复 /
1
页
Go
上一主题
返回本主题
返回主题列表
返回页首
下一主题
热点TAG:
正在读取,请等待...
Wowzio
grab this
·
technology
blog
查询本论坛内
近一天
近三天
近一周
近一月
近三月
近半年
近一年
所有
回复超过
的热门帖子
标题
内容
提交时自动拷贝以上内容到剪贴板 Ctrl-V可取出;提问题前先查询
标签列表
解惑之道在
J道
,打造中国最具影响力的的企业软件社区
推荐Chrome快速浏览本站
OpenSource
JIVEJDON
v3.5
Powered by
JdonFramework
Code © 2002-09
jdon.com
anti spam