Use Bundle
blockquote>В Activity1 передайте данные:
Intent intent = new Intent(this, Activity2.class); Bundle bundle = new Bundle(); bundle.putString("key1",value1); bundle.putInt("key2",value2); ... intent.putExtras(bundle) startActivity(intent);
В Activity2 получите данные:
Bundle extras = getIntent().getExtras(); if (extras != null) { String value1 = extras.getString("key1"); int value2 = extras.getInt("key2"); ... }
Вы не должны повторять определение класса на своем уровне доступа к данным (DAL).
Можно создать предприятия как 'немые' контейнеры в отдельном блоке, например, класс Человека может просто быть:-
public class Person
{
int ID { get; set: }
string Name { get; set: }
}
Затем можно дать DAL ссылку на слой предприятий. Ваши объекты контроллера, являются ли они в отдельном слое бизнес-логики, или на Вашем уровне UI, могут затем просто назвать DAL, который может создать предприятие, заполнить его от базы данных и возвратить его Вашему контроллеру.
Эта статья Imar Spaanjaars имеет хорошее объяснение этого шаблона.
Ваш бизнес-слой определенно не хочет знать о строках данных - пытаются оставить данные определенными классами в слое данных. Это уменьшает связь и освобождает Вас для изменения слоя персистентности позднее без оптового перепроектирования.
Для решения определенной проблемы Вы можете также:
Другой вещью, о которой Вы могли бы хотеть думать, являются уровни v слои - это имеет значение, как Вы думаете об этих вещах. Уровни являются обычно физическими, другими словами, они определяют границы между процессами. Слои обычно логичны, они разделяют функциональность программы на слабо связанные единицы. Вы стремитесь к слоям в этом случае.
Если Вы создаете интерфейсы к своим классам ДАО и размещаете их в Вашем бизнес-уровне, можно сослаться бизнес-уровень от Уровня доступа к данным. Классы ДАО в данных разделяют эхо-сигналы на уровни от бизнес-уровня.
Ваш бизнес-уровень ссылается на интерфейсы вместо того, чтобы непосредственно сослаться на объекты доступа к данным. Внедрение зависимости через контейнер МОК (как замок Windsor, например) позволит Вам выполнять это.
Эту технику называют разделенной соединенный интерфейсом и описывают здесь:
http://www.martinfowler.com/eaaCatalog/separatedInterface.html
Лучшее объяснение этой техники, которую я видел, может быть найдено в этой статье о лучших практиках NHibernate, записанных Billy McCafferty.
http://www.codeproject.com/KB/architecture/NHibernateBestPractices.aspx
Статья имеет большую информацию, которая характерна для NHiberbate, но хорошая половина из него является просто основательной информацией о разработке приложений, которые будут слабо связаны и легко протестированная единица.