ZhouSky 6fe219d644
Pr/1235 Review (#1250)
* Add simple implementation for strangler pattern.

* Add strangler pattern in pom.xml.

* change package name

* Revert "change package name"

This reverts commit 430bd9073ea7bea6430586a0953c77f1798aacc8.

* Code review for strangler

Delete final of method parameters.
Add final to private members.
Change package name.

* Revert "Code review for strangler"

This reverts commit d5063567083e0348d678a938bd749e17343bcb8e.

* Revert "Revert "Code review for strangler""

This reverts commit c8fd65fda782749c4f74f6de85da0f271d3c48a8.

* Remove unnecessary files
2020-07-04 12:05:46 +03:00

32 lines
1.2 KiB
Markdown

---
layout: pattern
title: Strangler
folder: strangler
permalink: /patterns/strangler/
categories: Structural
tags:
- Extensibility
---
## Intent
Incrementally migrate a legacy system by gradually replacing specific pieces of functionality
with new applications and services. As features from the legacy system are replaced, the new
system eventually covers all the old system's features and may has its own new features, then
strangling the old system and allowing you to decommission it.
## Class diagram
![alt text](./etc/strangler.png "Strangler")
## Applicability
This strangler pattern is a safe way to phase one thing out for something better, cheaper, or
more expandable. Especially when you want to update legacy system with new techniques and need
continuously develop new features at the same time. Note that this pattern indeed need extra effort,
so usually use it when the system is not so simple.
## Credits
* [Strangler pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/strangler#context-and-problem)
* [Legacy Application Strangulation : Case Studies](https://paulhammant.com/2013/07/14/legacy-application-strangulation-case-studies/)