Some Design patterns introduced to us during the class consists of: Singleton, MVC, Observer, Factory, Publish-Subscribe, Prototype, and Front Controller. Design patterns are like the template of an algorithm that is uniform with other programing no matter the programmer creating, or utilizing the particular code, in terms of understanding and easily contributing with others who wish to supplement code, in order to solve similar problems in software design no matter the circumstance. Design patterns are like multiple solutions that can solve the same problem. There are multiple ways to program towards an objective from different angles and approaches, depending on how complex, or otherwise simplistic the programmer chooses to implement their code.
An example of the observer design pattern, is that of the use of subscriptions needed to ensure that when any changes are made to the database, that the updates would be amended/overwritten to the correlating database. The Publish aspect of subscribing could be conveyed in the way the collection data is inserted, removed, or essentially captured and stored to then be called upon when needed by the end user, etc. The methodology therein of Factory design is when we would use classes or functions that could be independent and not necessarily hinder one another but yet work in tandem to process code. Prototype design pattern was used by way of duplication of line code or entire files/directories, to refactor into other instances as a way of templating and therefore branching off of, to initialize another similar, but different, file, or attribute to be used in the code. Front Controller can act as a landing page, or rather a way of authenticating users/accounts to more easily view or monitor in such capabilities such as Monti APM for example, or other server like instances that can track activity.
We have used MVC (Model, View, and Controller), throughout the entire course to constructively organize a sensible design pattern methodology process whilst implementing various objectives learned for different functions and features depending on the experiences we have progressed through. The collections secured via Mongo DB is the prime example of Model. View on the other hand, consists of the pages needed to display what the user/viewer would otherwise inevitably see, for example GUI like intractability or what is visible in the web browser in our case. Controller holds the necessary routing needed by successfully processes and associate the various files in conjunction with one another.