2014-11-10 2 views
0

내 안드로이드 응용 프로그램에서 위임 디자인 패턴을 사용하려고하지만 제대로하고 있는지 확실하지 않습니다. 여기 LoginActivity.javaandroid에서 위임 패턴을 적용하는 올바른 방법

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_login); 
    } 
    public void login(View v) { 
     AutoCompleteTextView emailInput = (AutoCompleteTextView) findViewById(R.id.email); 
     EditText passwordInput = (EditText) findViewById(R.id.password); 
     String email = emailInput.getText().toString(); 
     String password = passwordInput.getText().toString(); 
     new ConnectDatabase().authenticate(email, password); 
    } 

내 코드 여기 내 ConnectDatabase.java 위임자

public class ConnectDatabase { 
    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
    } 
    public boolean authenticate(String email, String password) { 
     Log.d("Message", email+" &"+password); 
     return false; 
    } 

} 

는 디자인 패턴을 사용하는 올바른 방법인가, 아니면 내가 LoginActivity.java 그것을 구현하자 다음 인터페이스를 만들 필요가 ?

+0

"올바른 방법"이란 무엇을 의미합니까? 코드가 예상대로 작동합니까? –

+0

작동하지만 디자인 패턴을 올바로 구현했거나 결함이있을 수 있습니까? –

+0

이 질문은 코드 검토에 관한 것이므로 주제의 주제가 아닌 것으로 보입니다. –

답변

0

코드가 위임되지만 IMO는 ""위임 패턴을 사용하지 않습니다.

new ConnectDatabase().authenticate...은 간단히 ConnectDatabase.authenticate으로 작성 될 수 있으며 정적 유틸리티 인 mehod가됩니다. 당신은 전혀 물건을 필요로하지 않습니다.

Wikipedia

객체에서

, 대신 관련 도우미 개체에 명시된 작업 중 하나, 대표 해당 작업을 수행. 대리자로 알려진 도우미 객체가 위임자의 작업을 실행할 책임을 부여받는 Inversion of Responsibility가 있습니다.

난 당신이 때 당신이 관련된 객체에 위임 상태보다 좀 더 문자 그대로를 취할 필요가 있다고 주장 할 것이다. 왜냐하면 객체는 객체가되어야 할 필요가 있기 때문에 책임이 필요하고 무언가를 캡슐화해야합니다. 예를 들어 어떤 상태를 추적하고 활동에서 복잡한 상태 시스템 논리를 숨길 수 있습니다. 도우미가 생성되어 같은 줄에 버려지면 두 객체간에 연관성이 없습니다.

관련 문제