ブリッジパターンでは、は「抽象化を実装から切り離し、両方とも独立して変更できる」と読みました。実際にはどういう意味ですか?このフレーズはどのようにブリッジパターンの例に関連していますか? 私はこのコードを理解していますが、このコードをフレーズに関連付けることはできません。誰もがこれを説明することができます。ブリッジパターン::抽象化を実装から切り離して、両方とも独立して変更できるようにする
ありがとうございました。
/* Implementor interface*/
interface Gear
{
void handleGear();
}
/* Concrete Implementor - 1 */
class ManualGear implements Gear{
public void handleGear(){
System.out.println("Manual gear");
}
}
/* Concrete Implementor - 2 */
class AutoGear implements Gear{
public void handleGear(){
System.out.println("Auto gear");
}
}
/* Abstraction (abstract class) */
abstract class Vehicle {
Gear gear;
public Vehicle(Gear gear){
this.gear = gear;
}
abstract void addGear();
}
/* RefinedAbstraction - 1*/
class Car extends Vehicle{
public Car(Gear gear){
super(gear);
// initialize various other Car components to make the car
}
public void addGear(){
System.out.print("Car handles ");
gear.handleGear();
}
}
/* RefinedAbstraction - 2 */
class Truck extends Vehicle{
public Truck(Gear gear){
super(gear);
// initialize various other Truck components to make the car
}
public void addGear(){
System.out.print("Truck handles ");
gear.handleGear();
}
}
/* Client program */
public class BridgeDemo {
public static void main(String args[]){
Gear gear = new ManualGear();
Vehicle vehicle = new Car(gear);
vehicle.addGear();
gear = new AutoGear();
vehicle = new Car(gear);
vehicle.addGear();
gear = new ManualGear();
vehicle = new Truck(gear);
vehicle.addGear();
gear = new AutoGear();
vehicle = new Truck(gear);
vehicle.addGear();
}
}
output
Car handles Manual gear
Car handles Auto gear
Truck handles Manual gear
Truck handles Auto gear
こんにちはAlexander Tsvetkov、返信ありがとうございます。私はこれが最高の答えだと思います。今私はこの概念を完全に理解することができます。もう一度ありがとう。 –
@mukeshsingh、私はそれが助けてうれしい! upvotingと答えを受け入れたとみなしてください。 –
なぜアレクサンダーじゃないの!私はそれをやめようとしますが、どうやって行うのですか?私はstackoverflowで新しいです。 upvotingと受け入れられたとしてマークする方法について知らない。 –