Design Patterns in Flutter

Design Patterns in Flutter

Design Patterns vs Software Architecture

Software Architecture

Software architecture is, simply, the organization of a system. This organization includes all components, how they interact with each other, the environment in which they operate, and the principles used to design the software. In many cases, it can also include the evolution of the software into the future.

Going through this definition, we can find three important aspects, namely:

  • How the whole components of system software are organized and assembled:?Architectural Pattern
  • How they communicate with each other:?Messaging and APIs
  • The environment in which they operate and the principles the whole UI is ruled by:?Quality Attributes

Design Pattern

Design Pattern could be defined as a common repeatable solution to recurring problems in software design. Design patterns can not be related to a finished design which will be directly used in code but it could be understood as a description or template for how to solve any common problem that may occur in many situations.

Going through this definition, we find that:

  • It is a solution to recurring problems of software development.
  • It is not a sample code which is directly used in the project.
  • It is a template that helps solve issues occuring during software development.

After going through the definition of each term, we realize that they can be differentiated on the following basis:

  • Scope: Software Architecture has a?universal scope, it has to managed at a?higher level?like?server configuration, whereas, Design Pattern has a?lower level?scope that comes to the project’s internal code pattern
  • Functioning: Software Architecture involves the organization and assembling of the components in a way such that their communication is convenient and secure. On the other hand, a Design Pattern is about how the components are built.

With this being explained, we will next look at the popular design patterns for Flutter, namely?Model-View-Controller (MVC),?Model-View-Presenter (MVP)?and?Model-View-ViewModel (MVVM).

要查看或添加评论,请登录

Ayan Dasgupta的更多文章

社区洞察

其他会员也浏览了