2016-12-04 3 views
1

У меня возник вопрос о связи между классами в java/android Studio.Android Общение между классами

У меня есть четыре класса, которые передают информацию на Афоризм таким образом:

MainActivity{ 

    Intent intent = new Intent (this, Main2Activity.class); 
    intent.putStringArrayListExtra("addressesList", addressList); 
    startActivity(intent); 

} 

Main2Activity{ 

    private ArrayList addressList = new ArrayList(); 
    addressList = getIntent().getStringArrayListExtra("addressesList"); 

    Calculate calulate = new Calculate(this); 
    calulate.getTravelInformation(); 

} 

Calculate{ 

    private ApiCall apiCall = new ApiCall(this); 

    private ArrayList addressesList = new ArrayList();  

    private Main2Activity activity; 

    public Calculate (Main2Activity a){ 
     activity = a; 
     addressesList = activity.addressList; 
    } 

    protected void doSomething(){ 
    } 

} 

ApiCall{ 

    private Calculate calculate; 

    protected ApiCall(Calculate a){ 
     calculate = a; 
    } 

    calculate.doSomething(); 

} 

Так что мой вопрос, есть ли лучшие способы сделать это, и есть ли причина, почему я не должен делать это, как это?

Заранее благодарю за помощь.

ответ

2

Прежде всего, если вы хотите общаться между мероприятиями, намерение - это возможность общения. В Calculate вы передаете ссылку main2Activity, если вам действительно нужна ссылка на деятельность, вы можете использовать класс Activity для повторного использования в случае, если вы собираетесь использовать этот класс больше, чем место. Я не знаю, что вы собираетесь писать в doSomething(), потому что в зависимости от метода сделайте класс более общим. То же самое будет применимо к ApiCall. Поскольку вы создаете циклическую зависимость между классами

0

Я понимаю, что вы переживаете, когда я прошел через то же самое. Начнем с некоторых концепций:

Концепция заявления «общение между классами» заключается в том, что в программировании классы никогда не общаются друг с другом, на самом деле это действия. Таким образом, у вас есть две операции и два вспомогательных класса. Поскольку вы используете Intent, да, Intent - это способ, которым вы можете осуществлять связь между действиями (например, совместное использование данных и т. Д.), И мы чувствуем, что классы общаются друг с другом. Таким образом, вы использовали Intent Object для общения, это очень правильный способ сделать это, без проблем, вы идете вправо, и теперь вы использовали два вспомогательных класса, и вы правильно пишете методы. Удачи.

Смежные вопросы