namespace TemporaryProj
{
class SomeClassImpl
{
public int Field = 5;
public string str = "I am hidden a lot!";
public void SayHello()
{
Console.WriteLine("Hi dear!");
}
}
class SomeClass
{
protected SomeClassImpl impl = new SomeClassImpl();
public void GetAccessIfItIsImportant(Action<SomeClassImpl> action)
{
action?.Invoke(impl);
}
}
class TmpProj
{
static void Main(string[] args)
{
SomeClass some = new SomeClass();
some.GetAccessIfItIsImportant((SomeClassImpl impl) =>
{
impl.Field = 40;
Console.WriteLine(impl.str + impl.Field);
impl.SayHello();
});
}
}
}
Часто, когда я использую паттерн Bridge, мне приходится делать такие махинации с реализацией.
Я понимаю, конечно, что это не правильно, но уж очень удобно использовать такой подход "доверия" к программисту со стороны, который захочет поковырять реализацию в каких-нибудь особенных случаях.
Просто правильно ли это?