আমার একটি ক্লাস রয়েছে: Aএটি বেশ কয়েকটি ছোট ক্লাসের সংমিশ্রণ B, Cএবং D।
B, C, এবং Dইন্টারফেস বাস্তবায়ন IB, ICএবং IDযথাক্রমে।
যেহেতু Aসব কার্যকারিতা সমর্থন B, Cএবং D, Aকার্যকরী IB, ICএবং IDসেইসাথে, কিন্তু এই দুর্ভাগ্যবশত অনেক বাড়ে বাস্তবায়নের পুনরায় রাউটিংA
তাই ভালো:
interface IB
{
int Foo {get;}
}
public class B : IB
{
public int Foo {get {return 5;}}
}
interface IC
{
void Bar();
}
public class C : IC
{
public void Bar()
{
}
}
interface ID
{
string Bash{get; set;}
}
public class D: ID
{
public string Bash {get;set;}
}
class A : IB, IC, ID
{
private B b = new B();
private C c = new C();
private D d = new D();
public int Foo {get {return b.Foo}}
public A(string bash)
{
Bash = bash;
}
public void Bar()
{
c.Bar();
}
public string Bash
{
get {return d.Bash;}
set {d.Bash = value;}
}
}
এই বয়লারপ্লেট পুনর্নির্দেশের কোনওটি থেকে মুক্তি পাওয়ার কোনও উপায় আছে A? B, Cএবং Dসব ভিন্ন কিন্তু সাধারণ কার্যকারিতা বাস্তবায়ন, এবং আমি যে মত Aকার্যকরী IB, ICএবং IDকারণ এটা মানে আমি পাস করতে পারেন Aযারা ইন্টারফেসগুলি মিলে নির্ভরশীলতার হিসাবে নিজেকে, এবং ভেতরের সাহায্যকারী পদ্ধতি এক্সপোজ করতে হবে না।
Aবাস্তবায়ন IB, ICএবং IDএটা লিখতে আরো ইন্দ্রিয়গ্রাহ্য মতানুযায়ী Person.Walk()হিসাবে বিরোধিতা Person.WalkHelper.Walk()উদাহরণস্বরূপ,।