interface IDependency
{
string Baz { get; set; }
}
class Foo
{
IDependency dependency;
public Foo(IDependency dependency)
{
this.dependency = dependency;
}
public void FubarBaz()
{
dependency.Baz = "fubar";
}
}
これを次のように実装することもできます。
class FooStatic
{
public static void FubarBaz(IDependency dependency)
{
dependency.Baz = "fubar";
}
}
静的メソッドよりも不変オブジェクトを選択する必要があるのはいつですか?逆のことが当てはまる状況はありますか?
また、不変オブジェクトにはvoidメソッドを含めるべきではないように思われます。どう思いますか?