在android中应用委托模式的正确方法

时间:2014-11-10 21:24:53

标签: java android design-patterns

我正在尝试在我的Android应用程序中使用委托设计模式,但不确定我是否正确执行。这是我的LoginActivity.java

代码
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实现它?

1 个答案:

答案 0 :(得分:0)

您的代码正在委派,但IMO没有使用“ ”委托模式。

new ConnectDatabase().authenticate...可以简单地写成ConnectDatabase.authenticate,然后是静态实用程序。你根本不需要一个对象。

来自Wikipedia

  

一个对象,而不是执行其声明的任务之一,将该任务委托给关联的帮助程序对象。有一个责任倒置,其中一个辅助对象(称为委托)负责为委托人执行任务。

我认为,当您委派给关联对象的状态时,您需要更多地理解它。对于一个因为对象需要有理由成为对象,他们需要一个责任,他们需要封装一些东西。例如,它可以为您跟踪某些状态,并从您的Activity中隐藏一些复杂的状态机逻辑。当创建辅助对象并将其丢弃在同一行时,这两个对象之间也没有关联。