MVC(Model-View-Controller)モデルは、アプリケーションの構造を整理し、管理しやすくするためのデザインパターンです。このパターンは、アプリケーションを3つの主要なコンポーネントに分けます:モデル、ビュー、コントローラー。それぞれの役割を理解することは、良いソフトウェア設計の基礎となります。
以下は、Pythonで簡単なMVCアプリケーションを実装するためのサンプルコードです。この例では、書籍の情報を管理するシンプルなアプリケーションを作成します。
まずは、モデルを実装します。書籍の情報を管理するためのクラスを定義します。
class Book:
def __init__(self, title, author):
self.title = title
self.author = author
def __str__(self):
return f"{self.title} by {self.author}"
このクラスは、書籍のタイトルと著者を属性として持ち、__str__
メソッドをオーバーライドして、書籍の情報を文字列として返します。
次に、ビューを実装します。書籍のリストを表示するためのクラスを定義します。
class BookView:
@staticmethod
def display_books(books):
if not books:
print("No books available.")
else:
for book in books:
print(book)
BookView
クラスは、書籍のリストを受け取り、それをコンソールに表示するdisplay_books
メソッドを持っています。
最後に、コントローラーを実装します。ユーザーの入力を処理し、モデルとビューを連携させる役割を持ちます。
class BookController:
def __init__(self):
self.books = []
self.view = BookView()
def add_book(self, title, author):
new_book = Book(title, author)
self.books.append(new_book)
print(f"Added: {new_book}")
def show_books(self):
self.view.display_books(self.books)
BookController
クラスは、書籍のリストを管理し、add_book
メソッドで新しい書籍を追加し、show_books
メソッドで書籍のリストを表示します。
以下のコードで、アプリケーションを実行します。
if __name__ == "__main__":
controller = BookController()
controller.add_book("1984", "George Orwell")
controller.add_book("To Kill a Mockingbird", "Harper Lee")
controller.show_books()
この部分では、BookController
のインスタンスを作成し、書籍を追加してから、全書籍を表示します。
このプログラムを実行すると、次のような出力が得られます。
Added: 1984 by George Orwell
Added: To Kill a Mockingbird by Harper Lee
1984 by George Orwell
To Kill a Mockingbird by Harper Lee
このチュートリアルでは、MVCモデルの基本を理解し、Pythonでの実装方法を学びました。モデル、ビュー、コントローラーの各コンポーネントの役割を明確に分けることで、アプリケーションの保守性や拡張性が向上します。次のステップとして、実際のフレームワーク(DjangoやFlaskなど)を使用して、より複雑なMVCアプリケーションを構築することを検討してみてください。