X-gen PPT下载——《研磨设计模式》 实战

X-gen项目背景

 

nX-gen项目背景

  很多做应用项目的朋友都会有这样的感觉:项目越来越大,模块越来越多,但是大多数都是重复或者相似的做法,至少每个模块的基础部分的实现是差不多的,比如CRUD(增删改查)功能的实现,又比如翻页功能的实现等等。

  因此,很多朋友都在想办法解决这个问题,如何能够减少这些重复劳动,让自己把有限的时间和精力投入到具有创意或挑战的功能实现上。

  很快地,大家便根据自己的需要,结合公司已有的系统架构和公共功能,制作出了符合自己需要的小应用,可以实现根据配置文件或者是数据库定义来生成应用模块,并带上增删改查的功能实现。

  一切看起来是那么完美,从此不需要再去写每个模块的基础部分了,可以根据配置或数据库定义来生成这些基础部分,然后在此基础之上,进行业务功能的开发就可以了。

  通常这种程序,由于是公司内部专用,因此会实现得非常简单,很多复杂多变的状况也就不再去考虑了,只要满足自己的需要即可。

 

n面临的问题

1:如果生成的配置文件需要发生变化:那么相应的读取配置文件的程序需要变化;同时使用这些数据的程序也需要变化

2:如果模板文件需要发生变化:那么读取模板文件的地方需要发生变化,同时,运行中把参数数据设置到模板的程序也需要发生变化

3:如果调用逻辑或调用顺序需要发生变化:那就需要修改调用部分的程序来适应新的变化

4:如果输出格式需要发生变化:那就只好重新写代码来实现新的输出格式

 

  类似这样的问题还有很多,这里就不一一列举了。

  由于很多这样公司内部使用的工具型应用,是按照公司现有的开发模式来实现的,大都实现得非常简单和僵硬,对于这些变化适应能力是非常差的。

  而上述这些变化,是经常发生的,因此,很多公司都会有人专门负责维护这样的内部应用,不断更改这些程序来适应新的应用的需要。但由于生成的调用过程、生成配置、生成模板以及最后生成等功能是搅和在一起的,因此改动起来非常困难。

 

nX-gen出场

  因此我们需要一个项目,来把生成应用的核心部分独立出来,形成公共的应用,让变化的部分从应用中分离出来,让程序人员可以根据需要进行配置和扩展,从而适应各种应用的需要。

  X-gen就是这样一个应用。X-gen分成两个部分,一个部分是核心框架,用来实现生成应用的公共部分;另外一个部分就是自定义模板部分,按照程序人员的需要来制定模板,几乎所有能重复使用的功能都可以通过X-gen生成,没有什么使用限制。

 

nX-gen系统整体功能概述 

  x-gen是一个能按照模板和配置去生成结果的通用框架,设计精巧,结构灵活,平台开放,支持模板自定义,支持配置方式自定义,支持生成方式自定义,甚至可以自定义generate的过程。

  X-gen的核心是一个通用的生成调用框架,本身并不约定任何需要生成的东西,因此几乎可以满足所有朋友的各种generate需求。

  x-gen首先要解决根据什么来生成的问题;其次要解决如何生成的问题,同时还要解决在生成的时候如何利用外部主题的问题;然后要解决生成结果的问题,包括最终生成成为什么格式,以及把结果输出到什么地方等问题。

 

n配置管理(genconf)功能概述

  x-gen是按照配置来generate的,配置管理模块主要完成:获取用户配置的数据、缓存用户配置的数据 、并对外提供访问这些数据的接口等功能。

  X-gen是一个通用的框架,它本身并不固定要求配置的格式,也不要求配置的来源,因而它也不固定获取和解析配置数据的程序。虽然x-gen默认提供了对xml配置的支持,但可以通过注册新的provider来提供对新的配置方式的支持。

  x-gen可以完全由开发人员自己来制定配置的方式、配置的地方、配置的格式,以及如何获取这些配置数据,如何解析这些配置数据等。并能够以很简单的方式插接到x-gen的核心框架中。

 

n分发调度(dispatch)功能概述

  分发调度提供接受用户请求的入口,然后根据用户请求的内容,去获取相应的配置数据,获得户配置的数据过后,就按照配置的要求来发出命令,要求按照这些配置数据来完成generate的功能。

  在每一个具体命令的实现中,先动态组合需要完成的generate的功能,然后就把这些功能交给generate的代理去完成。

  也就是说分发调度只是负责接收用户的任务,然后把任务组合好,最后分配出去,只是起到一个调度的作用,本身并不处理用户的请求功能。

 

n生成代理(genproxy)功能概述

  生成代理是一个介于生成调度(dispatch)和真正生成(geninvocation)之间额外的附加层,目的是能够根据需要切换不同的代理,比如生成调度根据配置,需要通过远程来生成,那么就需要远程代理,远程访问的方式可能是rmiwebservice等等

 

n具体调用(geninvocation)功能概述

  这个模块实现一个具体生成功能的调用过程,通常是把用户配置的参数数据,按照一定的规则与theme的模板相结合,从而得到需要生成的结果,然后把结果输出出去的过程。

n模板管理(template)功能概述

  模板管理的功能就是负责获取相应的模板数据,并对这些模板的数据进行管理,在外部需要这些模板数据的时候,可以访问模板管理提供的接口来获取。

n生成输出(output)功能概述

  具体调用运行完成后,会产生generate的结果,这些结果如何输出?输出到什么地方?输出成为什么格式等等问题,都由生成输出来负责。

  生成输出本身并不固定任何的输出要求,开发人员完全可以在外部来定义输出的格式,输出的地方,以及如何输出等,只需要在theme的配置中注册新的outtype即可。目前x-gen提供了最简单的输出成为普通文本类型的文件的功能。

 

n什么是外部主题(theme

  所谓theme,就是一套用于生成的模板及其相应程序和配置。由于模板的配置会有很多个,通常会把多个相关的模板组合在一起,统称为主题,也就是theme,今后我们就不说模板了,而是说x-gen根据主题/theme来生成。。

 

n外部主题功能概述

  外部主题是独立于x-gen核心框架之外的,完全由开发人员根据需要来制定,通常里面会包含generate所需要的所有原始模板文件,跟模板文件对应的解析和生成的辅助程序,生成处理的Action处理程序,还有theme的配置文件,一般这几个是必不可少的;其次是根据需要,由开发人员扩展的功能,比如:在进行生成处理前后需要额外添加的功能,自定义的输出类型等等。

  外部主题决定了按照什么来生成、如何生成以及生成成为什么东西的具体信息,是提供给x-gen核心框架使用的重要数据。 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内容简介 · · · · · · 《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,培养正确的“设计观”;中高级内容则深入探讨如何理解这些模式,包括模式中蕴涵什么样的设计思想,模式的本质是什么,模式如何结合实际应用,模式的优缺点以及与其他模式的关系等,以期让读者尽量去理解和掌握每个设计模式的精髓所在。 《研磨设计模式》在内容上深入、技术上实用、和实际开发结合程度很高,书中大部分的示例程序都是从实际项目中简化而来,因此很多例子都可以直接拿到实际项目中使用。如果你想要深入透彻地理解和掌握设计模式,并期望能真正把设计模式应用到项目中去,那么这是你不可错过的一本好书。 《研磨设计模式》难度为初级到中级,适合与所有开发人员、设计人员或者即将成为开发人员的朋友。也可以作为高效学生深入学习设计模式的参考读物! 作者简介 · · · · · · 陈臣:十年Java/JavaEE开发经验,高级系统架构师,功力深厚,技术精湛,精通Java/JavaEE相关技术和多种开源框架,尤其擅长系统分析和架构设计。从事过专业的中间件研发,包括基于组件的Web页面框架、基于WFMC的工作流中间件、类似于Hibernate的ORM框架等等;参与或主持了多个中大型的企业级应用项目,拥有多年项目经理、技术部经理的管理经验。个人博客:http://www.javass.cn/javapeixunxxyd/index.html 王斌:从事Java/JavaEE开发五年,系统架构师,精通Ejb、Struts、Spring、Hibernate、iBatis等框架技术,擅长设计模式和Eclipse插件开发。作为架构小组骨干,参与了国旅电子商务平台、南王酒庄等多个项目的开发,开发并维护有constance4j、myxstream、SimpleMapping等多个公司内部开源框架,深得多个项目组好评。
本电子书一共两个压缩文档,该文档为part1。 《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,培养正确的“设计观”;中高级内容则深入探讨如何理解这些模式,包括模式中蕴涵什么样的设计思想,模式的本质是什么,模式如何结合实际应用,模式的优缺点以及与其他模式的关系等,以期让读者尽量去理解和掌握每个设计模式的精髓所在。    《研磨设计模式》在内容上深入、技术上实用、和实际开发结合程度很高,书中大部分的示例程序都是从实际项目中简化而来,因此很多例子都可以直接拿到实际项目中使用。如果你想要深入透彻地理解和掌握设计模式,并期望能真正把设计模式应用到项目中去,那么这是你不可错过的一本好书。 《研磨设计模式》难度为初级到中级,适合与所有开发人员、设计人员或者即将成为开发人员的朋友。也可以作为高效学生深入学习设计模式的参考读物! 第1章 设计模式基础    第2章 简单工厂    第3章 外观模式    第4章 适配器模式(Adapter)    第5章 单例模式(Singleton)    第6章 工厂方法模式(Factory Method)    第7章 抽象工厂模式(Abstract Factory)    第8章 生成器模式(Builder)    第9章 原型模式(Prototype)    第10章 中介者模式(Mediator)    第11章 代理模式(Proxy)    第12章 观察者模式(Observer)    第13章 命令模式(Command)    第14章 迭代器模式(Iterator)    第15章 组合模式(Composite)    第16章 模板方法模式(Template Method)    第17章 策略模式(Strategy)    第18章 状态模式(State)    第19章 备忘录模式(Memento)    第20章 享元模式(Flyweight)    第21章 解释器模式(Interpreter)    第22章 装饰模式(Decorator)    第23章 职责链模式(Chain of Responsibility)    第24章 桥接模式(Bridge)    第25章 访问者模式(Visitor)    附录A常见面向对象设计原则    附录BUML简介    参考文献
本电子书一共两个压缩文档,本文件为part2. 《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,培养正确的“设计观”;中高级内容则深入探讨如何理解这些模式,包括模式中蕴涵什么样的设计思想,模式的本质是什么,模式如何结合实际应用,模式的优缺点以及与其他模式的关系等,以期让读者尽量去理解和掌握每个设计模式的精髓所在。    《研磨设计模式》在内容上深入、技术上实用、和实际开发结合程度很高,书中大部分的示例程序都是从实际项目中简化而来,因此很多例子都可以直接拿到实际项目中使用。如果你想要深入透彻地理解和掌握设计模式,并期望能真正把设计模式应用到项目中去,那么这是你不可错过的一本好书。    《研磨设计模式》难度为初级到中级,适合与所有开发人员、设计人员或者即将成为开发人员的朋友。也可以作为高效学生深入学习设计模式的参考读物! 第1章 设计模式基础    第2章 简单工厂    第3章 外观模式    第4章 适配器模式(Adapter)    第5章 单例模式(Singleton)    第6章 工厂方法模式(Factory Method)    第7章 抽象工厂模式(Abstract Factory)    第8章 生成器模式(Builder)    第9章 原型模式(Prototype)    第10章 中介者模式(Mediator)    第11章 代理模式(Proxy)    第12章 观察者模式(Observer)    第13章 命令模式(Command)    第14章 迭代器模式(Iterator)    第15章 组合模式(Composite)    第16章 模板方法模式(Template Method)    第17章 策略模式(Strategy)    第18章 状态模式(State)    第19章 备忘录模式(Memento)    第20章 享元模式(Flyweight)    第21章 解释器模式(Interpreter)    第22章 装饰模式(Decorator)    第23章 职责链模式(Chain of Responsibility)    第24章 桥接模式(Bridge)    第25章 访问者模式(Visitor)    附录A常见面向对象设计原则    附录BUML简介    参考文献
内容简介 · · · · · · 《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,培养正确的“设计观”;中高级内容则深入探讨如何理解这些模式,包括模式中蕴涵什么样的设计思想,模式的本质是什么,模式如何结合实际应用,模式的优缺点以及与其他模式的关系等,以期让读者尽量去理解和掌握每个设计模式的精髓所在。 《研磨设计模式》在内容上深入、技术上实用、和实际开发结合程度很高,书中大部分的示例程序都是从实际项目中简化而来,因此很多例子都可以直接拿到实际项目中使用。如果你想要深入透彻地理解和掌握设计模式,并期望能真正把设计模式应用到项目中去,那么这是你不可错过的一本好书。 《研磨设计模式》难度为初级到中级,适合与所有开发人员、设计人员或者即将成为开发人员的朋友。也可以作为高效学生深入学习设计模式的参考读物! 作者简介 · · · · · · 陈臣:十年Java/JavaEE开发经验,高级系统架构师,功力深厚,技术精湛,精通Java/JavaEE相关技术和多种开源框架,尤其擅长系统分析和架构设计。从事过专业的中间件研发,包括基于组件的Web页面框架、基于WFMC的工作流中间件、类似于Hibernate的ORM框架等等;参与或主持了多个中大型的企业级应用项目,拥有多年项目经理、技术部经理的管理经验。个人博客:http://www.javass.cn/javapeixunxxyd/index.html 王斌:从事Java/JavaEE开发五年,系统架构师,精通Ejb、Struts、Spring、Hibernate、iBatis等框架技术,擅长设计模式和Eclipse插件开发。作为架构小组骨干,参与了国旅电子商务平台、南王酒庄等多个项目的开发,开发并维护有constance4j、myxstream、SimpleMapping等多个公司内部开源框架,深得多个项目组好评。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值