it can be hard design for the V, M, and C to communicate with each other. Does the view constantly have to poll the model? Does the controller need to update the view through the model or directly?
What if there are multiple views? In the basic MVC model, views cannot communicate between each other without some sort of underlying process that handles communication.
What if there are multiple models? When a view is dependent on multiple models, which model does it request data from?
MVC would be appropriate if the separate M,V,C components could change. In the clock example, one could change the controller from a normal clock to an alarm clock. One could change the view from analog to digital.
A bad MVC choice would be when there are multiple components of M,V, and C working in the same application.
b) In OO it is easy to separate parts of a program that can be reused in other programs. It is easy to separate the program into different parts that can be developed by different people, tested separately, and integrated. It is easy to have different things in a program have the same functionality through inheritence.
OO is longer to design and develop, and can be more complex than need be.
OOA is good for large programs or when there are many developers.
OOA is a bad idea for smaller programs and programs that have one function that does not change or communicate with other programs/devices.
c) Squeak is slower, there are less Squeak developers, and ?less secure?, but better for multimedia and programmable objects (ie, one can easily insert code at runtime into a Squeak program).
Java is more widespread, faster.
By examples are we looking for specifics. Like in b) I would use OOP for software, games etc, however device drivers I wouldn't use it. In C) I would use Squeak for graphics and Java for anything were I am concerned about security like banking systems or the phoneline database, becasue encryption can be useful. Robert Schierholz