您好我正在编写我自己的亚马逊PHP SDK的高级API,用于操作DynamoDB,一个nosql数据库。
我发现自己为一个函数编写了大约150行代码,用于执行一个操作,包括错误检查,请求构建,当然还有注释。如果我继续这样,API类可以轻松超过一千行,我认为这有点难以维护。
因此,我正在考虑将我的班级分成几个较小的类,每个类处理一组操作。比如说,表操作,项操作和批处理操作。但我不是软件设计模式的专家,所以这真的是模块化的好方法吗?或者是否有任何我应该遵守的设计模式并使我的代码更容易维护?
答案 0 :(得分:3)
你的问题有点主观,因为你没有提供代码,所以我们可以看到你想要实现的目标。
但是,是的,您需要将您的班级分成更小的组件,每个组合都有自己的责任。没有一种模式可以说明究竟是如何做到的,但Single Responsibility Principle是一个很好的开始。这是关于separation of concerns。
你说:
[...]包括错误检查,请求构建[...]
您可以将错误检查与请求构建分开,然后再将其分成更小的组件,每个组件只有一个责任。您必须只有一个原因需要更改每个组件,而不是一个。您必须定义明确的域模型,并为每个域对象提供专用服务。
以@teresko的答案为例:
How should a model be structured in MVC?
因此,请记住,您需要separate your application进入图层。该请求是表示层的一部分。现代MVC-alike应用程序由控制器层和视图层组成,它与模型层交互,以便为给定请求准备演示文稿。
答案 1 :(得分:2)
我想我和你在同一条船上。我有很多要维护的课程,目的太多了。看看下面的网页,它帮助了我:http://www.dofactory.com/Patterns/Patterns.aspx。 Google也是:SOLID(http://en.wikipedia.org/wiki/SOLID_%28object-oriented_design%29)。这些是针对.NET和面向对象的编程,但我知道PHP有类和对象。