我混淆了这两种体系结构的差异。
通常,Monolithic Architecture
指的是将应用程序的不同组件组合为一个业务逻辑。并且,Service Oriented Architecture
是指由执行所需功能的离散且松散耦合的软件代理组成的应用程序。
但是我了解到,OOP和设计模式的目标是“一个功能应该承担一个责任”和“减少依赖关系以增加功能的重用性。”
所以我的问题是:1.整体架构是否遵循OOP?2.两种体系结构之间的差异。
1。整体架构遵循OOP吗?
好人。是。如果它是程序性的,那将更像是spagetti代码的混乱,而如果它是功能性的,则更难编写。在我工作过的所有专业公司中,他们都有OOP,并且还合并了MVP之类的框架。根据我为有问题的产品提供支持的公司的经验,它们往往一团糟。如果只需要扩展一个1MB的东西,唯一的办法就是扩展整个100MB的解决方案。
2。这两种架构之间的差异。
面向服务的体系结构IMO认为每个功能都可以是一个API,它是面向服务的。面向对象编程具有一些租户,即多态的,可恢复的,封装的[[(和抽象)
,它的编程风格与过程编程等几乎相反。[在设计服务时,可以说它是一个Weather应用程序,该应用程序可以告诉温度并进行预测。您将需要一个抽象的通用Weather
类,使其支持Celsius和Farenheight实现,并且您可以获取一些多态性,或者添加一个Interface以支持不同的位置或海拔高度,并使用听起来像GetTemp这样抽象的真正通用函数名称(通过City,State,Altitude的函数重载)将其封装在Weather
类中。因此,在这里设计时要考虑到服务导向和可靠的OOP组件。
“一个功能应承担一项责任”和“减少依赖关系以增加功能的重用性。”对于第二项服务来预测温度,它将进行一些计算并花费一些时间来计算,因此我们希望将其隔离,以便我们可以对其进行独立缩放。您可以通过使用不同的项目来做到这一点,而不必在消息传递技术(SQS,RabbitMQ等)中互相引用,而是使它们松散耦合。
注意:我们可以简单地将静态GetTemp结果缓存在另一个项目中,以轻松扩展系统的该部分。