프로그래밍 초보자로서 벽에 부딪쳤을 때 항상 버그가 난다. 현재 벽면 중 하나는 병에 의존하는 물체입니다.Java MVC - 느낌이 들지 않는다
내 질문에 역사에서 볼 수 있듯이 현재 MVC 패턴이라고 부르는 것을 구현 한 블랙 베리 응용 프로그램에서 작업하고 있지만 정확하게 의도 한 바가 아닙니다.
초보자 프로그래머는이 그래픽과 같은 초록을보고 아이디어를 얻습니다. 그러나 그것을 구현하는 것은 또 다른 일입니다.
alt text http://www.ibm.com/developerworks/wireless/library/wi-arch6/theoretical.gif
, 읽기 : 내가 당신에게 블랙 베리 특정 물건을 포함 내 일부 코드를 보여주는거야 멈추지 않는다, 그러나 당신은 내가 뭘하는지 볼 수하십시오. Mainscreen 모델
public class ContactManagerMainScreenModel
{
ContactManagerMainScreen v;
// Loading Local Storage
LocalContactStorage LocalContactStorage = new LocalContactStorage();
// Define Data List
private Vector vContacts_Favorites;
public void register(ContactManagerMainScreen v)
{
this.v = v;
}
// Retrieve Favorite Contacts from Persistant Storage
public Vector getFavoriteContactsFromLocalStorage()
{
vContacts_Favorites = LocalContactStorage.getFavoriteContactsFromLocalStorage();
return vContacts_Favorites;
}
// Put Retrieve Favorite Contacts from Persistant Storage
public void saveFavoriteContactsToLocalStorage()
{
LocalContactStorage.saveFavoriteContactsToLocalStorage(vContacts_Favorites);
}
}
MainScreenController
public class ContactManagerMainScreenController
{
private ContactManagerMainScreenModel _model = null;
private ContactManagerMainScreen _view = null;
public ContactManagerMainScreenController(ContactManagerMainScreen view, ContactManagerMainScreenModel model)
{
this._model = model;
this._view = view;
}
public void HideFavoriteList()
{
if(this._view._ContactList.getManager() != null)
{
this._view._ContactList.getManager().delete(this._view._ContactList);
} else
{
this._view._bottom_box.add(this._view._ContactList);
}
}
}
내 응용 프로그램
public class ContactManager extends UiApplication
{
private static ContactManagerMainScreenModel MainScreenModel = new ContactManagerMainScreenModel();
private static ContactManagerMainScreen MainScreenView = null;
public static void main(String[] args)
{
new ContactManager().enterEventDispatcher();
}
public ContactManager()
{
MainScreenView = new ContactManagerMainScreen(MainScreenModel);
// Displays the Splashscreen then opens the Mainscreen
new SplashScreen(UiApplication.getUiApplication(), MainScreenView);
}
}
에 대한
메인 엔트리 포인트 0
아직도 거기에? 좋아요 ...
내 문제는 컨트롤러를 사용하여 PopUp Box 표시, someting 또는 다른 것들을 숨기는 UI 요소를 변경하고 싶습니다.
그러나 이러한 모든 UI 요소는보기 (여기에서는 ContactManagerMainScreen)에 정의되어 있으므로 컨트롤러에보기에 대한 참조를 제공해야합니다. 내 공동의 목표를 불행하게 만듭니다.
보기를 선언하기 전에 컨트롤러를 만들 수 없습니다. 컨트롤러가 UIElements를 변경할 수있는 요구 사항이 없으면 (그래픽에 표시된 것처럼) 문제가되지 않습니다.
는보기
controller = new ContactManagerMainScreenController(this , model);
은 그 의미가 있습니까 컨트롤러를 생성하는 내가 지금하고있어인가? 패턴을 이해하고 싶기 때문에 코드 쓰레기 나 원하는 것을 부르세요. 단지 뭔가 배우고 싶습니다.
P. 내 나쁜 영어에 대한 당신의 용서를 구하십시오 :)
+1 전적으로 동의합니다. – neuro
+1 이것도 내 경험에 달려있다. – Zarkonnen
(누구나 *보기와 컨트롤러를 완벽하게 구분할 수있는 케이스를 만들 수 있다면 매우 흥미가 있습니다.) – Zarkonnen