Как сделать friend в C#
От: bober_maniac Россия http://bober-maniac.livejournal.com/
Дата: 04.11.10 23:24
Оценка:
Допустим, у меня есть два класса:

public class MockDirectory
{
public MockFile this[string name] {get{...}set{...}}
}

public class MockFile
{
}


И я хочу, чтобы инстанцировать класс MockFile можно было только из MockDirectory.

Мои действия: сделать MockFile абстрактным классом/интерфейсом, в MockDirectory добавить вложенный приватный класс MockFileImpl, унаследованный от него и работать с ним.

Это по фен-шую или надо делать по-другому? Или это вообще плохой дизайн и надо делать совсем не так? Как?
Re: Как сделать friend в C#
От: adontz Грузия http://adontz.wordpress.com/
Дата: 04.11.10 23:26
Оценка:
Здравствуйте, bober_maniac, Вы писали:

_>Это по фен-шую или надо делать по-другому? Или это вообще плохой дизайн и надо делать совсем не так? Как?


Это как-то жадно очень Обычно internal/InternalsVisibleTo хватает. Большого смысла разводить безопасность внутри одной сборки как правильно нет.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[2]: Как сделать friend в C#
От: bober_maniac Россия http://bober-maniac.livejournal.com/
Дата: 04.11.10 23:29
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, bober_maniac, Вы писали:


_>>Это по фен-шую или надо делать по-другому? Или это вообще плохой дизайн и надо делать совсем не так? Как?


A>Это как-то жадно очень Обычно internal/InternalsVisibleTo хватает. Большого смысла разводить безопасность внутри одной сборки как правильно нет.


Я очень люблю защищаться от дурака, причем в роли дурака рассматриваю себя в первую очередь.

В любом случае компилятор гораздо жестче выдержит все соглашения, чем я сам.
Re: Как сделать friend в C#
От: _nn_ www.nemerleweb.com
Дата: 07.11.10 14:39
Оценка:
Здравствуйте, bober_maniac, Вы писали:

_>И я хочу, чтобы инстанцировать класс MockFile можно было только из MockDirectory.

Т.е. создать экземпляр класса или что-то другое ?

_>Мои действия: сделать MockFile абстрактным классом/интерфейсом, в MockDirectory добавить вложенный приватный класс MockFileImpl, унаследованный от него и работать с ним.

Сделав MockFile интерфейсом или абстрактным классом, создать экземпляр класса нельзя будет и так.

_>Это по фен-шую или надо делать по-другому? Или это вообще плохой дизайн и надо делать совсем не так? Как?


Вы уже смотрите, что вам нужно.
http://rsdn.nemerleweb.com
http://nemerleweb.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.