نمط تصميم الجسر في جافا

اليوم سنتناول نمط تصميم الجسر في لغة جافا. عندما يكون لدينا تسلسل واجهات في كلا الواجهات والتنفيذات، يتم استخدام نمط تصميم الجسر لفصل الواجهات عن التنفيذ وإخفاء تفاصيل التنفيذ عن برامج العميل.

نمط تصميم الجسر

تمامًا مثل نمط المحول، نمط تصميم الجسر هو واحد من أنماط التصميم الهيكلي. وفقًا لـ GoF، يتمثل نمط تصميم الجسر في:

فصل التجريد عن التنفيذ بحيث يمكن أن يتغيرا بشكل مستقل

تتبع تنفيذ نمط تصميم الجسر مفهوم تفضيل التكوين على التوريث.

مثال على نمط تصميم الجسر في جافا

إذا نلقي نظرة على نمط تصميم الجسر مع مثال، سيكون من السهل فهمه. فلنفترض أن لدينا تسلسل واجهة في كل من الواجهات والتنفيذات كما هو موضح في الصورة أدناه. الآن سنستخدم نمط تصميم الجسر لفصل الواجهات عن التنفيذات. ستبدو رسمة UML للفئات والواجهات بعد تطبيق نمط الجسر كما هو موضح في الصورة أدناه. لاحظ الجسر بين واجهات Shape و Color واستخدام التركيب في تنفيذ نمط الجسر. فيما يلي رمز Java لواجهات Shape و Color. Color.java

package com.journaldev.design.bridge;

public interface Color {

	public void applyColor();
}

Shape.java

package com.journaldev.design.bridge;

public abstract class Shape {
	 // التركيب - المنفذ
	protected Color color;
	
	 // مع المنفذ كوسيط الإدخال
	public Shape(Color c){
		this.color=c;
	}
	
	abstract public void applyColor();
}

لدينا فئات تنفيذ المثلث والمنشور كما هو موضح أدناه. Triangle.java

package com.journaldev.design.bridge;

public class Triangle extends Shape{

	public Triangle(Color c) {
		super(c);
	}

	@Override
	public void applyColor() {
		System.out.print("Triangle filled with color ");
		color.applyColor();
	} 

}

Pentagon.java

package com.journaldev.design.bridge;

public class Pentagon extends Shape{

	public Pentagon(Color c) {
		super(c);
	}

	@Override
	public void applyColor() {
		System.out.print("Pentagon filled with color ");
		color.applyColor();
	} 

}

فيما يلي فئات تنفيذ RedColor و GreenColor. RedColor.java

package com.journaldev.design.bridge;

public class RedColor implements Color{

	public void applyColor(){
		System.out.println("red.");
	}
}

GreenColor.java

package com.journaldev.design.bridge;

public class GreenColor implements Color{

	public void applyColor(){
		System.out.println("green.");
	}
}

دعنا نقوم باختبار تنفيذ نمط الجسر باستخدام برنامج اختبار. BridgePatternTest.java

package com.journaldev.design.test;

import com.journaldev.design.bridge.GreenColor;
import com.journaldev.design.bridge.Pentagon;
import com.journaldev.design.bridge.RedColor;
import com.journaldev.design.bridge.Shape;
import com.journaldev.design.bridge.Triangle;

public class BridgePatternTest {

	public static void main(String[] args) {
		Shape tri = new Triangle(new RedColor());
		tri.applyColor();
		
		Shape pent = new Pentagon(new GreenColor());
		pent.applyColor();
	}

}

نتيجة برنامج المثال أعلاه لنمط الجسر هي:

Triangle filled with color red.
Pentagon filled with color green.

{
“error”: “Upstream error…”
}

Source:
https://www.digitalocean.com/community/tutorials/bridge-design-pattern-java