水平有限
一个优秀的设计你的工程包结构的方式是按应用技术(technology)分类。所以在一个Click应用中,所有页面放在page包下。这样做也能和Page自动映射特性很好的搭配使用。
所有工程的域实体(domain entity)类会被包含在entity包中,并且service类在service目录中。注意entity包的名字可替换为包含domain或者model。通常会有一个util包包含那些不适合在其他包中的类。
在java中通常包的名字是单数的,所以是util不是utils。
下图说明MyCorp web应用例子的工程结构:
在这个例子中,使用声明的角色和基于安全的路径。在admin包和目录的page需要有admin角色才能被访问,而在user包和目录的page需要有user角色才能被访问。
Page Classes
在编写Page类时,最好的方法是把共通的方法放在Page的基类中。通常是提供访问应用的services和logger对象的方法。
例如,BasePage提供访问Spring配置的service和Log4J日志对象:
public class BasePage extends Page implements ApplicationContextAware {
/** The Spring application context. */
protected ApplicationContext applicationContext;
/** The page Logger instance. */
protected Logger logger;
/**
* Return the Spring configured Customer service.
*
* @return the Spring configured Customer service
*/
public CustomerService getCustomerService() {
return (CustomerService) getBean("customerService");
}
/**
* Return the Spring configured User service.
*
* @return the Spring configured User service
*/
public UserService getUserService() {
return (UserService) getBean("userService");
}
/**
* Return the page Logger instance.
*
* @return the page Logger instance
*/
public Logger getLogger() {
if (logger == null) {
logger = Logger.getLogger(getClass());
}
return logger;
}
/**
* @see ApplicationContextAware#setApplicationContext(ApplicationContext)
*/
public void setApplicationContext(ApplicationContext applicationContext) {
this.applicationContext = applicationContext;
}
/**
* Return the configured Spring Bean for the given name.
*
* @param beanName the configured name of the Java Bean
* @return the configured Spring Bean for the given name
*/
public Object getBean(String beanName) {
return applicationContext.getBean(beanName);
}
}
通常有一个border模板和一个继承BasePage并定义这个模板的BorderPage:
public class BorderPage extends BasePage {
/** The root Menu item. */
public Menu rootMenu = new Menu();
/**
* @see Page#getTemplate()
*/
public String getTemplate() {
return "/border-template.htm";
}
}
应用中的大部分page都是BorderPage的子类,除了AJAX page,它不需要HTML border模板通常继承BasePage。BorderPage不要包含共通逻辑,只需要呈现border模板。共通的page逻辑应该被定义在BasePage中。
为了防止Page基类自动映射被访问,要确保没有page模板能和它们的类名匹配。例如,BorderPage不会被自动映射到border-template.htm上。
- 大小: 14.7 KB
分享到:
- 2009-03-16 10:03
- 浏览 927
- 评论(2)
- 论坛回复 / 浏览 (2 / 1680)
- 查看更多
相关推荐
6. **最佳实践** - 使用变量存储重复使用的URL和元素选择器,提高代码可读性和可维护性。 - 编写清晰的测试步骤,每个步骤对应一个关键字,便于理解测试流程。 - 结合Robot Framework的其他库,如`...
本文将深入探讨Microsoft .NET Framework 2.0版本在分布式应用程序开发中的核心概念、技术和最佳实践,主要针对70-529考试进行详尽解析。这个框架是微软提供的一套全面的开发平台,它极大地简化了构建、部署和管理...
5. **性能优化**:针对.NET Framework应用程序,本书提供了一些关于如何提高性能的建议和最佳实践。 通过以上对本书核心知识点的详细解析,读者不仅能够系统地学习.NET Framework 3.5版本的应用开发技术,还能为...
吴穹作为培训师,可能会介绍最佳实践、常见问题和解决策略。 【标签】"RFS"可能是指Robot Framework Suite,它是一组相关的测试套件,组织成一个可执行的测试结构。在Robot Framework中,测试套件是最高级别的组织...
#### 五、最佳实践 - **遵循 Human Interface Guidelines**:确保应用程序界面简洁明了,易于理解和使用。 - **优化性能**:减少不必要的视图重绘和计算开销,避免内存泄漏等问题。 - **国际化与本地化**:支持多种...
通过阅读《MS Press - 应用微软.NET框架编程》,开发者不仅可以掌握.NET Framework的核心概念和技术,还能学习到最佳实践,以提升软件开发的效率和质量。书中的案例和实践指导将帮助读者将理论知识转化为实际开发...
Click N Mix是一个基于PHP...综上所述,Click N Mix是一个以用户友好和开发者便利为核心的PHP框架,它利用开源精神推动了代码质量和功能的持续提升,同时也强调了Clean Code的最佳实践,以实现高效、可维护的项目开发。
- **最佳实践**:分享在实际开发过程中积累的经验教训,帮助读者避开常见的陷阱并提升开发效率。 通过以上内容,我们可以看出《MCTS .NET Framework 2.0 Windows Applications》是一本全面覆盖.NET Framework 2.0...
4. **Office 开发的最佳实践**:讨论在 Office 开发中需要注意的性能优化、错误处理和调试技巧,确保解决方案既高效又稳定。此外,还会涉及安全性问题,如代码签名和权限管理。 5. **案例研究**:通过实际的项目...
通过学习这个系列课程,开发者将掌握智能客户端开发的关键技术和最佳实践,从而能够构建出满足用户需求、性能优越的桌面应用程序。此外,课程可能还会讨论如何将现有Web应用迁移到智能客户端模型,以及如何在团队中...
文件“Apache-Click-Framework-PickList-control-client-Jav.pdf”可能详细介绍了如何在实际项目中运用PrototypeJS和Apache Click框架来实现PickList的客户端控制,包括具体的代码示例、配置方法和最佳实践。...
通过阅读这份手册,用户将能深入了解Robot Framework的工作原理,并掌握实际操作中的技巧和最佳实践。 总而言之,Robot Framework结合了Python语言的优势,提供了一种高效、灵活且易于理解的自动化测试解决方案。...
4. **最佳实践**: - **清晰的结构**:组织好安装包的文件结构,使用户和维护者易于理解和维护。 - **兼容性检查**:确保安装包能在目标操作系统和.NET Framework版本上运行。 - **错误处理**:提供友好的错误...
通过本课程的学习,开发者不仅能深入了解智能客户端的开发理念,还能获得在实际项目中实施这些最佳实践的技能,从而提升应用程序的质量和用户体验。提供的PDF文档可能涵盖以上各个方面的详细讲解,包括理论知识、...
五、最佳实践 1. **保持简洁**:避免不必要的文件和组件,减少安装包大小。 2. **提供卸载选项**:确保用户能方便地卸载程序,清理所有相关文件和设置。 3. **文档清晰**:提供详细的安装和使用指南,帮助用户解决...
5. **最佳实践** - 定义清晰的测试套件结构,将相关测试用例组织在一起。 - 编写可重用的关键字,提高代码复用性。 - 制定良好的命名规范,使测试用例易于理解和维护。 - 利用Robot Framework的报告和日志功能,...
在Python中设计Selenium测试框架时,通常会遵循一些最佳实践,以提高代码的可维护性和可重用性。其中一种方法就是使用POM模式。POM模式是将页面的HTML元素和与其相关的操作封装到单独的类中,每个类代表页面的一个...
在.NET环境下打包ArcEngine是一项关键任务,涉及到GIS(地理信息系统)开发中的核心组件集成与部署。...在实践中,遵循最佳实践和官方文档能帮助开发者更顺利地完成ArcEngine在.NET环境下的打包工作。
2. **阅读文档**:如果有的话,文档会介绍框架的使用方法、API接口以及最佳实践。 3. **学习示例**:通过运行和修改示例代码,了解框架的工作原理和使用方式。 4. **分析源码**:如果框架没有提供详尽的文档,可以...