思考の宴の設計モード-アダプタモードAdapter Pattern
5377 ワード
適用シーンの例
プロジェクトには複数のチームやメンバーが協力して開発する必要があります.いずれかの機能モジュールClassAはプログラマA(または会社A)作成の場合、プロジェクトが一定の段階に進むにつれて需要が明確になるため、このモジュールは対外通信のインタフェースIを提供する必要があるが、当時の特定のシーンでは、このモジュールは改造や書き換えが容易ではなく、必要なインタフェース機能に近いクラスを提供するだけで、アダプタモードが機能するようになる.
アダプタ、Adapterは、その名の通り、あるものを変化させ、私が望んでいるように適合させます.Aプログラマーがクラスまたはインタフェースを作成したが、このインタフェースが私のニーズに完全に合っていない場合、私は積極的にそれを私の望むインタフェースIにすることができます.では問題が来て、いったいどのようにそれを変えますか?ははは、私の話では、「直接使う」か、「子承父業」か!
通常、アダプタモードは2つの形式に分けられます.
実装(java)
具体的な例を見てみましょう.今1つの小さいソフトウェアを书いて、私の会社は1つの“労働者”のインタフェースIWorkerを定义しなければならなくて、“话します”、“仕事”、“给料を获得します”などの3つの方法を実现して、しかし私の会社と协力してこのソフトウェアを开発するA会社はその自身の业务などの特殊な原因のため、ただ1つのPerson类を提供して、この类は“话します”だけあって、“寝ます”の2つの方法、会社の「上層部」の圧力に鑑みて、私達の研究開発チームは外部コードを修正することができなくて、A会社の何を非難することができなくて、だからチームは内部の討論を経て、一致して自分でこのインタフェースの不一致の問題を解決することを決定します.
必要な労働者インタフェース:
public interface IWorker {
void speak();
void work();
void getSalary();
}
A社が提供するクラス:
public class Person {
public void speak(){
System.out.println("I am a normal person.");
}
public void sleep(){
System.out.println("Leave me alone.");
}
}
使用対象適合モードの改造:
public class WorkerObjectAdapter implements IWorker{
Person person; //
public WorkerObjectAdapter(Person person) {
this.person = person;
}
@Override
public void work() { // “work”
System.out.println("work");
}
@Override
public void getSalary() { // “getSalary”
System.out.println("get salary");
}
@Override
public void speak() { // 1. “speak”
person.speak(); //2.
System.out.println("WorkerObjectAdapter speak");
}
}
クラス適合モードを使用して改造する:
public class WorkerClassAdapter extends Person implements IWorker{//
@Override
public void work() { // “work”
System.out.println("work");
}
@Override
public void getSalary() { // “getSalary”
System.out.println("get salary");
}
@Override
public void speak() { // 3. “speak”
super.speak(); //4. ,
System.out.println("WorkerClassAdapter speak");
}
}
以上の方法で、私たちの研究開発チームはプロジェクト開発の主導権を再び自分の手に握っています.外部人員(A社)のマイナス影響を最小化(以上2,4箇所のみリスク)異常処理などで直接リスクを遮断することも可能ですが、具体的なアダプタでは、必要なインタフェースを実現するコードはすべて私たちが自分で書いたものですから~みんなが喜んでくれて、世界が調和しています~
アダプタモード:私の地盤は私が決めます!
転載は以下のことを明記してください.