デザインパターンの使用を多用します。Joomlaが特定のページをGETする、またはフォームからデータをPOSTする等、ユーザからの要求を処理し始める時、Joomla!がまず最初にすることはどのコンポーネントが要求に応じるかを決定するURLを解析します。コンポーネントに制御を引き渡します。コンポーネントがMVCパターンに沿って設計されている場合は、コントローラに制御を渡します。コントローラは要求の解析を解析し、どのモデルが要求を満たす必要があるか、どのビューをユーザに表示するかを決定する役割があります。モデルは、コンポーネントによって使用されるデータをカプセル化します。ほとんどの場合、このデータはJoomlaのデータベース、またはいくつかの外部データベースのいずれかから来るが、モデルが別のサーバ上で動作しているWebサービスAPIを介してのような他のソースからデータを取得することも可能である。モデルはまた、適切な場合に、データベースを更新する役割があります。モデルには、どのようにデータの詳細を得られるか、または修正されるかの詳細からコントローラとビューを分離する役割があります。ビューには、コンポーネントによって、ブラウザーに送信される出力を生成するための役割があります。フォーマットする必要なあらゆる情報をモデルが呼び出し、適切にフォーマットします。モデルから取り出されたデータアイテム一覧はビューに寄ってHTMLテーブルでラップされます。Joomlaは、ビューとレイアウトに伝統的なビューを分割します。ビューは、従来のMVCパターンのように、モデルからデータを引き出しますが、その後は単にユーザに表示するためにデータをフォーマットする役割があるレイアウトに利用可能なデータを作成します。この分割すること利点は、Joomlaのテンプレートシステムがテンプレートでオーバーライドされるレイアウトの簡単なメカニズムを提供することです。これらはテンプレートの一部を形成するのでしばしば「テンプレートオーバーライド」呼ばれます。)は、テンプレートにバンドルされており、テンプレートデザイナは、JoomlaコアおよびMVCデザインパターンに準拠してインストールされたサードパーティのエクステンションからのすべての出力を完全に制御することができます。Documentation。