В чем разница между формой и структурой объекта? - PullRequest
0 голосов
/ 18 мая 2009

Я вижу, что это часто используется в контексте данных. Из сообщения Скотту :

Один из действительно мощных возможности, предоставляемые LINQ и Синтаксис запроса - это возможность для вас определить новые классы, которые являются отдельными от запрашиваемых данных, и к затем используйте их, чтобы контролировать форму и структура возвращаемых данных по запросу.

Что он имеет в виду, когда ссылается на форму данных?

Ответы [ 4 ]

3 голосов
/ 18 мая 2009

Я думаю, что это неформальные термины, а определения субъективны. Я бы использовал «shape» для обозначения того, как объект вписывается в другие объекты в системе. (Сравните «площадь поверхности», которая является грубой (без каламбура :-) мера сложности интерфейса объекта.) Я бы использовал «структуру», чтобы указать, как объект спроектирован и реализован внутри.

Следовательно, у вас могут быть классы, которые имеют хорошую «форму», но такую ​​структуру, как крепированная бумага. Это, вероятно, легче реорганизовать, чем наоборот: плохая форма, но хорошая реализация. (Я уверен, что некоторые люди зададутся вопросом, возможно ли последнее.)

1 голос
/ 18 мая 2009

Как правило, я бы рассматривал shape класса как открытые методы и свойства, которые предлагает класс. Структура будет внутренними конструкциями и используемым представлением. В контексте цитируемого материала я бы сказал, что, позволив определить тип возврата запроса с использованием анонимных или альтернативно названных классов, вы можете переопределить данные, возвращаемые запросом, ограничивая и преобразовывая его форму из оригинала. источник данных.

Например, допустим, у вас есть таблица пользователей, связанная с таблицей контактов. Используя LINQ и анонимный класс в качестве выбора, вы можете вернуть пользователя с основным контактным объектом без необходимости определять конкретное представление; используя только LINQ.

var userWithContact = from u in db.Users
                      select new
                          { 
                            Name = u.Name,
                            Address = u.Contacts
                                       .Where( c => c.Type = "self" ).First().Address
                          };
1 голос
/ 18 мая 2009

считают фигуру объектами "api", а структура - ее внутреннюю реализацию. В хорошо спроектированной системе форма будет оставаться статичной, в то время как структура может значительно измениться.

1 голос
/ 18 мая 2009

Форма - это любые пространственные атрибуты (особенно определенные контуром) объекта, тогда как структура - это способ построения объекта и расположение его частей. Конечно, это может относиться к любому типу объекта. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...