Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 模块化背后的设计模式?_Design Patterns_Modularity - Fatal编程技术网

Design patterns 模块化背后的设计模式?

Design patterns 模块化背后的设计模式?,design-patterns,modularity,Design Patterns,Modularity,大家好,我正在为Amazon的PHPSDK编写自己的高级API,用于操作nosql数据库DynamoDB 我发现自己为一个只执行一个操作的函数编写了大约150行代码,其中包括错误检查、请求生成,当然还有注释。如果我继续这样做,API类很容易超过1000行,我认为这有点难以维护 因此,我想把我的类分解成几个较小的类,每个类处理一组操作。比如说like、表操作、项操作和批处理操作。但我不是软件设计模式专家,所以这真的是模块化的好方法吗?还是有什么设计模式需要我遵守,让我的代码更易于维护?我想我和你是

大家好,我正在为Amazon的PHPSDK编写自己的高级API,用于操作nosql数据库DynamoDB

我发现自己为一个只执行一个操作的函数编写了大约150行代码,其中包括错误检查、请求生成,当然还有注释。如果我继续这样做,API类很容易超过1000行,我认为这有点难以维护


因此,我想把我的类分解成几个较小的类,每个类处理一组操作。比如说like、表操作、项操作和批处理操作。但我不是软件设计模式专家,所以这真的是模块化的好方法吗?还是有什么设计模式需要我遵守,让我的代码更易于维护?

我想我和你是同舟共济的。我有很多类需要维护,它们有太多的用途。请查看以下帮助我的网页:。还有谷歌:固体(http://en.wikipedia.org/wiki/SOLID_%28object-面向对象的设计(第%29页)。这些都是针对.NET和面向对象编程的,但我知道PHP有类和对象。

您的问题有点主观,因为您没有提供代码,所以我们可以看到您实际上想要完成什么

但是,是的,您需要将类划分为更小的组件,每个组件都有自己的职责。没有一个单一的模式可以确切地说明如何做到这一点,但这个模式是一个很好的开始。是关于

你说:

[…]包括错误检查、请求生成[…]

接下来,将错误检查请求构建分离,然后再次将其分离为更小的组件,每个组件只承担一项责任。更改每个组件的理由必须只有一个,不能超过一个。您必须定义一个清晰的域模型,为每个域对象提供专用服务

以@teresko的答案为例:

因此,请记住,您需要进入层。请求是演示层的一部分。在现代应用程序中,它由控制器层和视图层组成,视图层与模型层交互,以便为给定的请求准备表示


请参阅:

您应该做的第一件事是通过编写处理特定任务的类来模块化程序。设计模式是一个更高级的问题,有助于代码重用和集成。因此,您应该根据您的软件体系结构仔细考虑它。您可以在这里阅读更多信息:www.oodesign.com谢谢您的回答!是的,我已经有了一个用于检查错误的类,但是每个函数仍然有20多行代码来调用适当的错误检查方法,因为只有很多参数(6~8)。至于评论。。。可能没有人对这里的评论负责,哈哈。你提供的MVC问题看起来很有趣,答案很有帮助,我读了一点,但还不是全部。。。我有时间一定会把它通读一遍。这确实帮助我现在更清楚地看到了大局。我想我如何划分我的类,在某种程度上取决于我如何在每个函数中找出相似的代码。嗯!?为了处理每种可能的错误类型,您最好使用异常处理程序。你所说的
没有人对这里的评论负责是什么意思
?只是用更多的信息更新了答案。。。祝你的研究顺利。谢谢你给我提供这篇文章,它看起来确实很有帮助,以后会仔细阅读的D