MacやiPhoneのSDKが提供しているCocoa*1で一番気になるのがMVC。何故、CocoaのMVCは、レガシーなMVCと違うアーキテクチャを採用しているのか。 気になったので、考えてみた。 レガシーなMVC レガシーなMVCの最大の目的は、Modelを再利用するアーキテクチャを提供すること。 このアーキテクチャでは、ViewやControllerはアプリによって、変更されることが前提になっている。そのため、ViewやControllerの再利用については言及されていない。 そのため、真面目にこのアーキテクチャで実装すると、ViewはModelとControllerに依存してしまい、Viewの再利用性は失われる。 [特徴] ModelはViewにもControllerにも依存しない。*2 ViewはControllerとModelに依存する。 ControllerはViewとMode
![何故、CocoaのMVCとレガシーなMVCはアーキテクチャが違うのか? - ちくたく](https://cdn-ak-scissors.b.st-hatena.com/image/square/98ba71ce2eab16c1401472bface462198b272715/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fs%2Fsankumee%2F20090402%2F20090402092947.png)