আমার একটি ক্লাস রয়েছে: 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()
উদাহরণস্বরূপ,।