虽然我一直积极的倡导使用面向对象的方式,但在某些状况下使用面向对象的设计方法会有一种“杀鸡用牛刀”的感受,例如在开发简单的业务逻辑时。在这种状况下,更好的方法是编写面向过程的代码,并使用Martin Fowler在《Patterns of Enterprise Application Architcture》一书中提到的事务脚本模式。你能够编写一个称为事务脚本的方法来处理来自表示层的每一个请求,而不是进行任何面向对象的设计。以下图,这种方法的一个重要特征是实现行为的类与存储状态的类是分开的。数据库
使用事务脚本时,脚本一般位服务类中,在此实例中是aService类,每个服务都有一个用于请求或者系统操做的方法,这个方法实现该请求的业务逻辑。它使用数据访问对象(DAO)访问数据库,例如aDao。数据对象是纯数据(例如model),几乎没有行为。编程
这种设计风格是高度面向过程的,仅仅依赖于面向对象编程(OOP)语言的少许功能,就比如你使用C或其余非OOP语言编写应用所能实现的功能。然而,在适当的时候,你不该该羞于使用面向过程的设计。这种方法适用于简单的业务逻辑,但这每每不是实现复杂业务逻辑的好方法。设计