Các mô hình hỗn hợp cung cấp một sự kết hợp mạnh mẽ: đáng kể tính linh hoạt của cấu trúc và giao diện cực kỳ quản lý. Cấu trúc này có thể được thay đổi bất cứ lúc nào bằng cách gọi phương pháp thích hợp trên một hỗn hợp để thêm hoặc loại bỏ các thành phần. | 75. controller 76. new ExitHandler 77. 78. setLayout new BorderLayout 79. add editPanel 80. add controlPanel 81. 82. 83. public Object getUpdateRef return update 84. public String getFirstName return 85. public String getLastName return 86. public String getTitle return 87. public String getOrganization return 88. 89. public void refreshContactView String newFirstName 90. String newLastName String newTitle 91. String newOrganization 92. newFirstName 93. newLastName 94. newTitle 95. newOrganization 96. 97. 98. private class ExitHandler implements ActionListener 99. public void actionPerformed ActionEvent event 100. 0 101. 102. 103. The updates to the model are possible due to the controller associated with the ContactEditView. In this example Java event-handling features and by extension the Observer pattern manage communication between the ContactEditView and its associated Controller. ContactEditController updates the ContactModel when the update behavior is triggered by the ContactEditView calling the method updateModel with new data provided by the editable fields of its associated view. Example 1. import . 2. 3. public class ContactEditController implements ActionListener 4. private ContactModel model 5. private ContactEditView view 6. 7. public ContactEditController ContactModel m ContactEditView v 8. model m 9. view v 10. 11. 12. public void actionPerformed ActionEvent evt 13. Object source 14. if source 15. updateModel 16. 17. 18. 19. private void updateModel 20. String firstName null 21. String lastName null 22. if isAlphabetic 23. firstName 24. 25. if isAlphabetic 26. lastName