デザインモードノート(7)--ブリッジモード
1336 ワード
ブリッジモード
継承がもたらすサブクラスと親の強い依存関係は、多重性とプログラムの柔軟性を制限します.
できるだけ合成/集約を使用し、できるだけクラス継承を使用しないでください.
集約は、オブジェクトAがオブジェクトBを含むことができるが、オブジェクトBがオブジェクトAの一部であるとは限らないなどの弱い「所有」関係を表す.合成は強い「持つ」関係を表し、厳格な部分と全体の関係である.
合成の最も明らかな特徴は、部分と全体が同じライフサイクルを持っていることです.
合成集約多重化の原則の利点は、各クラスがカプセル化され、単一のタスクに集中することを維持するのに役立つことである.クラスとクラスが継承する階層は、比較的小さな規模を維持できます.
GOFのブリッジモードの定義は「抽象部分とその実装部分を分離し,独立して変化させることができる」である.
抽象と実装の分離:抽象クラスとその派生クラスは、自分のオブジェクトを実装するために使用されます.ブリッジモードは、複数の分類があり、各分類が独立して変化する必要がある場合に適しています.
継承がもたらすサブクラスと親の強い依存関係は、多重性とプログラムの柔軟性を制限します.
できるだけ合成/集約を使用し、できるだけクラス継承を使用しないでください.
集約は、オブジェクトAがオブジェクトBを含むことができるが、オブジェクトBがオブジェクトAの一部であるとは限らないなどの弱い「所有」関係を表す.合成は強い「持つ」関係を表し、厳格な部分と全体の関係である.
合成の最も明らかな特徴は、部分と全体が同じライフサイクルを持っていることです.
合成集約多重化の原則の利点は、各クラスがカプセル化され、単一のタスクに集中することを維持するのに役立つことである.クラスとクラスが継承する階層は、比較的小さな規模を維持できます.
GOFのブリッジモードの定義は「抽象部分とその実装部分を分離し,独立して変化させることができる」である.
抽象と実装の分離:抽象クラスとその派生クラスは、自分のオブジェクトを実装するために使用されます.ブリッジモードは、複数の分類があり、各分類が独立して変化する必要がある場合に適しています.
public abstract class math
{
public abstract void select();
}
public class mathanalysis extends math
{
@override
public void select()
{
"shufen"
}
}
public class advancemath extends math
{
@override
public void select()
{
"gaoshu"
}
}
public abstract class departments
{
protected math mathcourse;
public void setcourse(math m)
{
mathcourse = m;
}
public abstract void select();
}
public class computer extends departments
{
@override
public void select()
{
" "
((math)mathcourse).select();
}
}
public class mathematics extends departments
{
@override
public void select()
{
" "
((math)mathcourse).select();
}
}