ryanwold.net

A civic-minded citizen seeking the singularity

Back to Entries

MVC (Model View Controller)

release
Date: 2019-10-03
Tags: MVC design patterns

Model View Controller is a general description of a separation between common elements in a software application:

  • The Model - source data
  • View - visible representation of that data (as a list, diagram, or chart; for example)
  • Controller - translation of user intent between the Model and a View, and vice-versa

Below are some general notes about distinctions in the term MVC and more descriptive descriptions of the term. Some people think this may be the most misunderstood design pattern. I disagree. But I think it helpful to understand the origins and intent of this pattern as it relates to addressing software design issues; especially regarding visually intense applications.


The Model-View-Controller pattern as an obvious solution to the general problem of giving users control over their information as seen from multiple perspectives. MVC has created a surprising amount of interest. Some texts even use perverted variants for the opposite purpose of making the computer control the user.

To any given Model there is attached one or more Views, each View being capable of showing one or more pictorial representations of the Model on the screen and on hardcopy. A View is also able to perform such operations upon the Model that is reasonably associated with that View.

It should always be possible to write a method in a controller that sends messages to views which exactly reproduce any sequence of user commands.

References

By Ryan Wold · © 2019–2026 Ryan Wold

Licensed CC BY-NC 4.0. AI training requires a license — machine-readable terms.

Enjoyed this? — any BSV wallet, HandCash, or plain old dollars.

Leave a tip

Tips go directly to a Bitcoin SV address I control — peer to peer, no platform in between. A few thousand satoshis is a fraction of a cent; it's the gesture that counts.

From any BSV wallet

Scan the QR code with your wallet's camera, or copy the address.

177DwUfSTW8RkFBJzYYcgr1YB8ngbhTYAc

With HandCash or any paymail wallet

Paymail is an email-style address for Bitcoin wallets. Send any amount to afomi@handcash.io

First time using Bitcoin? Yours Wallet is an open-source browser extension wallet, and HandCash is an easy mobile wallet — either takes a minute to set up.

Prefer regular money? Support via OpenCollective.