Читаем C# 4.0 полное руководство - 2011 полностью

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

// Использовать фабрику класса.

using System;

class MyClass {

int a, b; // закрытые члены класса

// Создать фабрику для класса MyClass. public MyClass Factory(int i, int j) {

MyClass t = new MyClass ;

t.a = i; t.b = j;

return t; // возвратить объект

}

public void Show {

Console.WriteLine("а и b: " + a + " " + b);

}

}

class MakeObjects { static void Main {

MyClass ob = new MyClass ; int i, j;

// Сформировать объекты, используя фабрику класса. for(i=0, j =10; i < 10; i++, j —) {

MyClass anotherOb = ob.Factory(i, j); // создать объект anotherOb.Show;

}

Console.WriteLine ;

}

}

Вот к какому результату приводит выполнение этого кода.

а и Ь: 0 10 а и Ь: 19 а и Ь: 2 8 а и b: 3 7 а и Ь: 4 6 а и Ь: 5 5 а и Ь: 6 4

а и b: 7 3 а и b: 8 2 а и b: 9 1

Рассмотрим данный пример более подробно. В этом примере конструктор для класса МуС lass не определяется, и поэтому доступен только конструктор, вызываемый по умолчанию. Это означает, что значения переменныхаиbнельзя задать с помощью конструктора. Но в фабрике классаFactory можно создать объекты, в которых задаются значения переменныхаи Ь. Более того, переменныеаи b являются закрытыми, и поэтому их значения могут быть заданы только с помощью фабрики классаFactory .

В методеMain получается экземпляр объекта классаМуС lass,а его фабричный метод используется в циклеforдля создания десяти других объектов. Ниже приведена строка кода, в которой создаются эти объекты.

MyClass anotherOb = ob.Factory(i, j); // создать объект

На каждом шаге итерации цикла создается переменная ссылки на объектanotherOb,которой присваивается ссылка на объект, формируемый фабрикой класса. По завершении каждого шага итерации цикла переменнаяanotherObвыходит за пределы области своего действия, а объект, на который она ссылается, утилизируется.

Возврат массива из метода

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных