---
title: "سلاسل الرسائل"
type: "code-smell"
slug: "message-chains"
url: "http://localhost:3000/ar/smells/message-chains.md"
category: "المقترنات"
description: "في الكود، ترى سلسلة من الاستدعاءات تشبه $a->b()->c()->d()"
---
# سلاسل الرسائل

> في الكود، ترى سلسلة من الاستدعاءات تشبه $a->b()->c()->d()

## العلامات والأعراض

في الكود، ترى سلسلة من الاستدعاءات تشبه `$a->b()->c()->d()`

## أسباب المشكلة

تحدث سلسلة الرسائل عندما يطلب العميل كائناً آخر، ويطلب هذا الكائن كائناً آخر، وهكذا. تعني هذه السلاسل أن العميل يعتمد على التنقل على طول هيكل الفئة (class structure). أي تغييرات في هذه العلاقات تتطلب تعديل العميل.

## المردود

* يقلل من الاعتمادية بين فئات السلسلة.
* يقلل من كمية الكود المتضخم.
## Relations

**Treated by**

- [إخفاء المفوض](/ar/hide-delegate.md)
- [استخراج الدالة](/ar/extract-method.md)
- [نقل التابع (Move Method)](/ar/move-method.md)


## Detected by

- **pmd** `LawOfDemeter` — قانون ديميتر (الاستدعاءات المتسلسلة) (https://docs.pmd-code.org/latest/pmd_rules_java_design.html#lawofdemeter)
