- Design Patterns and Best Practices in Java
- Kamalmeet Singh Adrian Ianculescu LUCIAN PAUL TORJE
- 250字
- 2021-06-25 20:52:39
The mediator pattern
In many cases, when we design and develop software applications, we encounter many scenarios where we have modules and objects that have to communicate with one another. The easiest approach would be to make them in such a way that they know each other and can send messages directly.
However, this might create a mess. If we imagine, for example, a communication app in which each client has to connect to another one, it doesn't make sense for a client to manage many connections. A better solution would be to connect to a central server and for the server to manage the communication between the clients. The client sends the message to the server and the server keeps the connection active to all the clients, and it can broadcast messages to all required recipients.
Another example is where a specialized class is required to mediate between different controls, such as buttons, dropdowns, and list controls, in a graphical interface. For example, the graphical controls in a GUI can hold a reference to each other in order to invoke their methods reciprocally. But obviously, this will create an extremely coupled code in which each control depends on all the others. A better approach would be to make the parent responsible for broadcasting messages to all the required controls when something needs to be done. When something modifies in a control, it will notify the window, which will check which controls need to be informed and then inform them.
- 數(shù)據(jù)庫(kù)系統(tǒng)原理及MySQL應(yīng)用教程(第2版)
- Advanced Quantitative Finance with C++
- 程序員面試筆試寶典(第3版)
- Microsoft Exchange Server PowerShell Cookbook(Third Edition)
- 深入理解Bootstrap
- 零基礎(chǔ)學(xué)C++程序設(shè)計(jì)
- Testing with JUnit
- Access 2010數(shù)據(jù)庫(kù)基礎(chǔ)與應(yīng)用項(xiàng)目式教程(第3版)
- Learning OpenStack Networking(Neutron)
- HTML5 APP開發(fā)從入門到精通(微課精編版)
- Illustrator CC平面設(shè)計(jì)實(shí)戰(zhàn)從入門到精通(視頻自學(xué)全彩版)
- OpenCV 3 Blueprints
- 程序員的成長(zhǎng)課
- PHP+MySQL Web應(yīng)用開發(fā)教程
- 實(shí)驗(yàn)編程:PsychoPy從入門到精通