وفي تطبيقات الرسوم البيانية الحديثة، فإن إدارة الذاكرة بكفاءة أمر حاسم بالنسبة للأداء والتصعيد، ومن النمط الفعّال لتصميم الحد من استهلاك الذاكرة، نمط البلازما للوزن الفلي، وهذا النمط يساعد على التقليل إلى أدنى حد من عدد الأجسام التي تُنشأ عن تقاسم أجزاء مشتركة من الأجسام، وهو أمر مفيد بصفة خاصة في الرسوم البيانية حيث تستخدم عدة أشياء مماثلة.

فهم نمط الوزن الزائف

وخط الأنابيب ذو الوزن الزائف هو نمط تصميم هيكلي يسمح للبرامج بدعم أعداد كبيرة من الأشياء بكفاءة عن طريق تقاسم البيانات المشتركة، وبدلا من إيجاد هدف جديد لكل كيان، يعيد النمط استخدام الأجسام الموجودة ذات الحالة المتأصلة المشتركة.

الطلب في الرسم البياني

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

تنفيذ خطة العمل

  • Identify Intrinsic State:] Determine which properties are shared among objects, such as color or font fashion.
  • Rereate Fly weight Objects:] Store shared properties in Fly weight objects that can be reused.
  • Manage Extrinsic State:] Keep properties that vary between objects outside the Fly weight objects, passing them as parameters when needed.
  • Usese a Factory:] Implement a factory class to manage Fly weight objects and ensure reuse.

مثال في القانون

افترض أن لديك تطبيق رسم مع آلاف الدوائر بدلاً من إيجاد هدف جديد لكل دائرة يمكنك أن تشارك الألوان و سمات النمط

إليك مثال مبسط:

class Circle {
 constructor(x, y, radius, style) {
 this.x = x;
 this.y = y;
 this.radius = radius;
 this.style = style; // shared object
 }
}

class Style {
 constructor(color, strokeWidth) {
 this.color = color;
 this.strokeWidth = strokeWidth;
 }
}

class StyleFactory {
 constructor() {
 this.styles = {};
 }

 getStyle(color, strokeWidth) {
 const key = color + strokeWidth;
 if (!this.styles[key]) {
 this.styles[key] = new Style(color, strokeWidth);
 }
 return this.styles[key];
 }
}

// Usage
const styleFactory = new StyleFactory();
const circles = [];

for (let i = 0; i < 1000; i++) {
 const style = styleFactory.getStyle('red', 2);
 circles.push(new Circle(i, i, 10, style));
}

استحقاقات درجة الوزن الزائف

وباستخدام جهاز (الثديوزن) للفلور يمكن أن يؤدي إلى وفورات كبيرة في الذاكرة، لا سيما عند التعامل مع أعداد كبيرة من الأشياء المماثلة، كما أنه يبسط إدارة الجسم ويمكن أن يحسن أداء التطبيق عن طريق خفض الحمولة على جامع القمامة.

خاتمة

إن نظام " البلازما " للوزن الفلي هو أداة قوية لتحقيق الاستخدام الأمثل للذاكرة في تطبيقات الرسوم البيانية، إذ يمكن للمطورين، من خلال تقاسم البيانات المشتركة وإدارة الممتلكات الخارجية بصورة منفصلة، أن يخلقوا نظما أكثر كفاءة وقابلية للتقسيم، ويمكن أن يكون إدراج هذا النمط مغيراً لللعب في معالجة الرسوم البيانية المعقدة بالعديد من الأشياء المماثلة.