`

Click Framework最佳实践-包和类

阅读更多

水平有限

 

一个优秀的设计你的工程包结构的方式是按应用技术(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
分享到:
评论
2 楼 bill.end 2009-03-16  
mazzystar 写道
where is your point

需要么?这是我翻译的。
http://incubator.apache.org/click/docs/best-practices.html#packages-classes
1 楼 mazzystar 2009-03-16  
where is your point

相关推荐

    Python库 | robotframework_browser-2.4.1-py3-none-any.whl

    6. **最佳实践** - 使用变量存储重复使用的URL和元素选择器,提高代码可读性和可维护性。 - 编写清晰的测试步骤,每个步骤对应一个关键字,便于理解测试流程。 - 结合Robot Framework的其他库,如`...

    Microsoft .NET Framework 2.0 - Distributed Application Development (70-529) Mega Guide

    本文将深入探讨Microsoft .NET Framework 2.0版本在分布式应用程序开发中的核心概念、技术和最佳实践,主要针对70-529考试进行详尽解析。这个框架是微软提供的一套全面的开发平台,它极大地简化了构建、部署和管理...

    Microsoft .Net Framework-Application Development Foundation(Second Edition)

    5. **性能优化**:针对.NET Framework应用程序,本书提供了一些关于如何提高性能的建议和最佳实践。 通过以上对本书核心知识点的详细解析,读者不仅能够系统地学习.NET Framework 3.5版本的应用开发技术,还能为...

    Robot+Framework+WD+培训-吴穹++ChinaTest2012.pdf

    吴穹作为培训师,可能会介绍最佳实践、常见问题和解决策略。 【标签】"RFS"可能是指Robot Framework Suite,它是一组相关的测试套件,组织成一个可执行的测试结构。在Robot Framework中,测试套件是最高级别的组织...

    UIKit Framework

    #### 五、最佳实践 - **遵循 Human Interface Guidelines**:确保应用程序界面简洁明了,易于理解和使用。 - **优化性能**:减少不必要的视图重绘和计算开销,避免内存泄漏等问题。 - **国际化与本地化**:支持多种...

    MS Press - Applied Microsoft .Net Framework Programming

    通过阅读《MS Press - 应用微软.NET框架编程》,开发者不仅可以掌握.NET Framework的核心概念和技术,还能学习到最佳实践,以提升软件开发的效率和质量。书中的案例和实践指导将帮助读者将理论知识转化为实际开发...

    Click N Mix - PHP Solution Framework-开源

    Click N Mix是一个基于PHP...综上所述,Click N Mix是一个以用户友好和开发者便利为核心的PHP框架,它利用开源精神推动了代码质量和功能的持续提升,同时也强调了Clean Code的最佳实践,以实现高效、可维护的项目开发。

    MCTS .NET Framework 2.0 Windows Applications

    - **最佳实践**:分享在实际开发过程中积累的经验教训,帮助读者避开常见的陷阱并提升开发效率。 通过以上内容,我们可以看出《MCTS .NET Framework 2.0 Windows Applications》是一本全面覆盖.NET Framework 2.0...

    .NET Framework 2.0 系列课程(4):Office Development 和 .NET Framework 2.0.zip

    4. **Office 开发的最佳实践**:讨论在 Office 开发中需要注意的性能优化、错误处理和调试技巧,确保解决方案既高效又稳定。此外,还会涉及安全性问题,如代码签名和权限管理。 5. **案例研究**:通过实际的项目...

    Smart Client系列课程(1):智能客户端开发概览

    通过学习这个系列课程,开发者将掌握智能客户端开发的关键技术和最佳实践,从而能够构建出满足用户需求、性能优越的桌面应用程序。此外,课程可能还会讨论如何将现有Web应用迁移到智能客户端模型,以及如何在团队中...

    通过PrototypeJS的Apache Click Framework PickList控制客户端JavaScript

    文件“Apache-Click-Framework-PickList-control-client-Jav.pdf”可能详细介绍了如何在实际项目中运用PrototypeJS和Apache Click框架来实现PickList的客户端控制,包括具体的代码示例、配置方法和最佳实践。...

    002RobotFramework测试框架使用手册.zip

    通过阅读这份手册,用户将能深入了解Robot Framework的工作原理,并掌握实际操作中的技巧和最佳实践。 总而言之,Robot Framework结合了Python语言的优势,提供了一种高效、灵活且易于理解的自动化测试解决方案。...

    VS.NET打包工具

    4. **最佳实践**: - **清晰的结构**:组织好安装包的文件结构,使用户和维护者易于理解和维护。 - **兼容性检查**:确保安装包能在目标操作系统和.NET Framework版本上运行。 - **错误处理**:提供友好的错误...

    Smart Client系列课程(6):分布式智能客户端应用程序开发最佳实践

    通过本课程的学习,开发者不仅能深入了解智能客户端的开发理念,还能获得在实际项目中实施这些最佳实践的技能,从而提升应用程序的质量和用户体验。提供的PDF文档可能涵盖以上各个方面的详细讲解,包括理论知识、...

    .Net程序如何打包

    五、最佳实践 1. **保持简洁**:避免不必要的文件和组件,减少安装包大小。 2. **提供卸载选项**:确保用户能方便地卸载程序,清理所有相关文件和设置。 3. **文档清晰**:提供详细的安装和使用指南,帮助用户解决...

    intellibot 0.10.143.381

    5. **最佳实践** - 定义清晰的测试套件结构,将相关测试用例组织在一起。 - 编写可重用的关键字,提高代码复用性。 - 制定良好的命名规范,使测试用例易于理解和维护。 - 利用Robot Framework的报告和日志功能,...

    auto_framework_demo_screenshot.zip

    在Python中设计Selenium测试框架时,通常会遵循一些最佳实践,以提高代码的可维护性和可重用性。其中一种方法就是使用POM模式。POM模式是将页面的HTML元素和与其相关的操作封装到单独的类中,每个类代表页面的一个...

    ArcEngine在.NET环境下打包安装

    在.NET环境下打包ArcEngine是一项关键任务,涉及到GIS(地理信息系统)开发中的核心组件集成与部署。...在实践中,遵循最佳实践和官方文档能帮助开发者更顺利地完成ArcEngine在.NET环境下的打包工作。

    Greetr ---实践框架-jQuery

    2. **阅读文档**:如果有的话,文档会介绍框架的使用方法、API接口以及最佳实践。 3. **学习示例**:通过运行和修改示例代码,了解框架的工作原理和使用方式。 4. **分析源码**:如果框架没有提供详尽的文档,可以...

Global site tag (gtag.js) - Google Analytics