1<!DOCTYPE html> 2<html lang="en" dir="ltr"> 3<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# website: http://ogp.me/ns/website#"> 4 <meta charset="utf-8"> 5 <title>About us</title> 6 7 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 8 <meta name="theme-color" content="#1abc9c" /> 9 10
10<script> 11 (function () { 12 if (typeof URLSearchParams === 'undefined') { 13 return; 14 } 15 var params = new URLSearchParams(window.location.search || ''); 16 var attribution = { 17 utm_source: params.get('utm_source'), 18 utm_medium: params.get('utm_medium'), 19 utm_campaign: params.get('utm_campaign'), 20 utm_term: params.get('utm_term'), 21 utm_content: params.get('utm_content'), 22 gclid: params.get('gclid'), 23 fbclid: params.get('fbclid'), 24 msclkid: params.get('msclkid'), 25 }; 26 var hasAny = false; 27 for (var key in attribution) { 28 if (attribution[key]) { 29 hasAny = true; 30 break; 31 } 32 } 33 if (!hasAny) { 34 return; 35 } 36 attribution.landing_url = window.location.href; 37 attribution.referrer = document.referrer; 38 attribution.captured_at = new Date().toISOString(); 39 try { 40 localStorage.setItem('last_attribution', JSON.stringify(attribution)); 41 } catch (e) { 42 } 43 })(); 44</script>
44 45 46 47 <link rel="preconnect dns-prefetch" href="https://cdn.paddle.com"> 48 <link rel="preconnect dns-prefetch" href="https://www.googletagmanager.com"> 49 50 51 52 <link rel="canonical" href="https://sourcemaking.com/about-us"/> 53 54 <link rel="icon" type="image/x-icon" href="/favicon.png"/> 55 56 <meta property="fb:app_id" content="251736824995775"/> 57 <meta property="og:type" content="website"/> 58 <meta property="og:image" content="https://sourcemaking.com/files/v2/content/home-tb1.png?id=944b161223408e06c3c65387c36a96ea"/> 59 <meta property="og:url" content="https://sourcemaking.com"/> 60 <meta property="og:title" content="Design Patterns and Refactoring"/> 61 <meta property="og:description" content="Design Patterns and Refactoring articles and guides. Design Patterns video tutorials for newbies. Simple descriptions and full source code examples in Java, C++, C#, PHP and Delphi."/> 62 63 <link rel="stylesheet" href="/css/public-packed.min.css?id=802c4ef59ddc0d9ac47b7c6f5546a5a4"> 64 65 <style type="text/css"> 66 @font-face{font-family:"PT Sans";font-style:normal;font-weight:400;font-display:swap;src:local("PT Sans"),local("PTSans-Regular"),url(/fonts/PTSans/ptsans-regular_cyrillic-ext.woff2?1) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"PT Sans";font-style:normal;font-weight:400;font-display:swap;src:local("PT Sans"),local("PTSans-Regular"),url(/fonts/PTSans/ptsans-regular_cyrillic.woff2?1) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"PT Sans";font-style:normal;font-weight:400;font-display:swap;src:local("PT Sans"),local("PTSans-Regular"),url(/fonts/PTSans/ptsans-regular_latin-ext.woff2?1) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"PT Sans";font-style:normal;font-weight:400;font-display:swap;src:local("PT Sans"),local("PTSans-Regular"),url(/fonts/PTSans/ptsans-regular_latin.woff2?1) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"PT Sans";font-style:normal;font-weight:400;font-display:swap;src:local("PT Sans"),local("PTSans-Regular"),url(/fonts/PTSans/ptsans-regular_en.woff2?1) format("woff2");unicode-range:U+0-FF,U+131,U+142,U+152,U+153,U+2BB,U+2BC,U+2C6,U+2DA,U+2DC,U+420,U+423,U+430,U+438-43A,U+43D,U+440,U+441,U+443,U+44C,U+457,U+2000-206F,U+2074,U+20AA-20AC,U+20B4,U+20B9,U+20BA,U+20BD,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"PT Sans";font-style:normal;font-weight:700;font-display:swap;src:local("PT Sans Bold"),local("PTSans-Bold"),url(/fonts/PTSans/ptsans-bold_cyrillic-ext.woff2?1) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"PT Sans";font-style:normal;font-weight:700;font-display:swap;src:local("PT Sans Bold"),local("PTSans-Bold"),url(/fonts/PTSans/ptsans-bold_cyrillic.woff2?1) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"PT Sans";font-style:normal;font-weight:700;font-display:swap;src:local("PT Sans Bold"),local("PTSans-Bold"),url(/fonts/PTSans/ptsans-bold_latin-ext.woff2?1) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"PT Sans";font-style:normal;font-weight:700;font-display:swap;src:local("PT Sans Bold"),local("PTSans-Bold"),url(/fonts/PTSans/ptsans-bold_latin.woff2?1) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"PT Sans";font-style:normal;font-weight:700;font-display:swap;src:local("PT Sans Bold"),local("PTSans-Bold"),url(/fonts/PTSans/ptsans-bold_en.woff2?1) format("woff2");
66unicode-range:U+0-FF,U+131,U+142,U+152,U+153,U+2BB,U+2BC,U+2C6,U+2DA,U+2DC,U+420,U+423,U+430,U+438-43A,U+43D,U+440,U+441,U+443,U+44C,U+457,U+2000-206F,U+2074,U+20AA-20AC,U+20B4,U+20B9,U+20BA,U+20BD,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD} 67 </style> 68 69
69<script defer src="/js/public.min.js?id=72c09e8a1958c6feca1769020c286e7f"></script>
69 70
70<script defer src="/js/checkout.min.js?id=6e850a15d11717db6abd80d3a21cd4b7"></script>
70 71
71<script defer src="https://cdn.paddle.com/paddle/v2/paddle.js"></script>
vendor: 68 bytes, lines 71-72
71 72 <script async src="https://www.googletagmanager.com/gtag/js?id=
72G-8ZVMFNG1VY
vendor: 18 bytes, lines 72-75
72"></script> 73 74 75
75<script> 76function extend(){var extended={};var deep=false;var i=0;var length=arguments["length"];if(Object["prototype"]["toString"]["call"](arguments[0])=== '[object Boolean]'){deep= arguments[0];i++};var merge=function(obj){for(var prop in obj){if(Object["prototype"]["hasOwnProperty"]["call"](obj,prop)){if(deep&& Object["prototype"]["toString"]["call"](obj[prop])=== '[object Object]'){extended[prop]= extend(true,extended[prop],obj[prop])}else {extended[prop]= obj[prop]}}}};for(;i< length;i++){var obj=arguments[i];merge(obj)};return extended} 77function defer(method) {if (window.jQuery) {method();} else {setTimeout(function() { defer(method) }, 50);}} 78</script>
vendor: 1 bytes, line 78
78
79<script> 80+function(sd){sd = (typeof sd === "string") ? JSON.parse(atob(sd)) : sd;for(var property in sd){if(window[property]!== null&& typeof window[property]=== 'object'){window[property]= extend(true,window[property],sd[property])}else {window[property]= sd[property]}}}("eyJsb2NhbGUiOiJlbiIsImxvY2FsZV9wcmVmaXgiOiIiLCJsb2NhbGl6ZWRfdXJsX3ByZWZpeCI6Imh0dHBzOlwvXC9zb3VyY2VtYWtpbmcuY29tXC8iLCJ1cmxfcHJlZml4IjoiaHR0cHM6XC9cL3NvdXJjZW1ha2luZy5jb21cLyIsImxvY2FsaXplZF91cmxfcHJlZml4X20iOiJodHRwczpcL1wvc291cmNlbWFraW5nLmNvbVwvIiwidXJsX3ByZWZpeF9tIjoiaHR0cHM6XC9cL3NvdXJjZW1ha2luZy5jb21cLyIsInVzZXJfZWNob19hbGlhcyI6InNvdXJjZW1ha2luZyIsInVzZXJfZWNob19ob3N0IjoiZmVlZGJhY2suc291cmNlbWFraW5nLmNvbSIsInVzZXJfZWNob19wcml2YXRlX2ZvcnVtIjoiMiIsInVzZXJfZWNob19sb2NhbGUiOiJlbiIsInVzZXJfZWNob19wdWJsaWNfZm9ydW0iOiIxIiwidXNlcl9lY2hvX3B1YmxpY19mb3J1bV91cmwiOiJodHRwczpcL1wvZmVlZGJhY2suc291cmNlbWFraW5nLmNvbVwvIiwidXNlcl9lY2hvX3Nzb190b2tlbiI6IiJ9"); 81</script>
81 82
83<script> 84
vendor: 143 bytes, lines 84-87
84window.dataLayer = window.dataLayer || []; 85 function gtag(){dataLayer.push(arguments);} 86 gtag('js', new Date()); 87 gtag('config', '
87G-8ZVMFNG1VY
vendor: 276 bytes, lines 87-93
87', { 88 // Disable default page view, because we're going to report them on our own. 89 // This is done to report traffic on localized domains as part of the main website traffic 90 // See the Chinese overrides below. 91 send_page_view: false, 92 }); 93
93// Needed to call gtag functions. 94 window.ga_measurement_id = 'G-8ZVMFNG1VY'; 95</script>
95 96
97<script> 98 (() => { 99 // On first page view after returning from social network, we need to send the social login event. 100 (function detectSocialLogin() { 101 let getCookie = function (name) { 102 var nameEQ = name + "="; 103 var ca = document.cookie.split(';'); 104 for (var i = 0; i < ca.length; i++) { 105 var c = ca[i]; 106 while (c.charAt(0) == ' ') c = c.substring(1, c.length); 107 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); 108 } 109 return null; 110 }; 111 window.social_login_provider = window.social_login_provider || getCookie('social_login_provider'); 112 if (window.social_login_provider) { 113 gtag('set', {referrer: null}); 114 gtag('event', 'login', {"method": window.social_login_provider}); 115 // Delete cookie. 116 document.cookie = 'social_login_provider=; Path=/; Max-Age=-99999999;'; 117 } 118 })(); 119 120 function trackPageView(location, title) { 121 location = location || document.location.href; 122 title = title || document.title; 123 124 // This is show on https://refactoringguru.cn/ and alike. 125 if (typeof window.analytics_path_prefix === 'string') { 126 if (/^(https?:\/\/[^\/]+?)\/$/.test(location)) { 127 location = location.replace(/(https?:\/\/[^\/]+?)\//, '$1' + window.analytics_path_prefix); 128 } else { 129 location = location.replace(/(https?:\/\/[^\/]+?)\//, '$1' + window.analytics_path_prefix + '/'); 130 } 131 gtag('set', { 132 'page_location': location 133 }); 134 } 135 136 // This is show on https://refactoring.guru/zh/login and alike. 137 if (typeof window.analytics_location_prefix === 'string') { 138 location = location.replace(/(https?:\/\/[^\/]+?)\//, window.analytics_location_prefix); 139 gtag('set', { 140 'page_location': location 141 }); 142 } 143 144 gtag('event', 'page_view', { 145 page_location: location, 146 page_title: title, 147 locale: window.locale ?? 'en' 148 }); 149 } 150 151 if (window.loadContent) { 152 window.onPageLoad = window.onPageLoad || []; 153 window.onPageLoad.push({ 154 func: function (context) { 155 trackPageView(window.location.origin + context.canonicalPath, context.title); 156 }, 157 afterAll: true, 158 }); 159 } 160 else { 161 trackPageView(); 162 } 163 })(); 164</script>
164 165 166 167</head> 168<body class="locale-en hg-width" data-body_class="hg-width"> 169 170<div class="body-holder"> 171 172 <div class="cart-placeholder"> 173 <div class="cart-block-container" style="display:none"> 174 <div class="cart-block btn-group"> 175 <a href="#checkout" class="btn cart open-checkout"> 176 <span class="cart-text"></span> <strong class="cart-total font-money"></strong> 177 </a><a href="#checkout" class="btn btn-secondary checkout open-checkout"><i class="fa fa-shopping-cart" aria-hidden="true"></i> <span class="btn-text-span d-none d-sm-inline-block d-lg-none d-hg-inline-block"></span></a> 178 </div> 179 </div> 180</div> 181 <main role="main" class="main-content top-content center-content " data-page_class=""> 182 <div class="main-content-container center-content-container"> 183 <div class="page text"> 184<article> 185 <h1 class="title">About us</h1> 186 187
187<script type="text/javascript"> 188 // Shorten examples titles for users. 189 var h1 = document.getElementsByTagName("H1")[0]; 190 if (h1.offsetHeight > 160) { 191 h1.className += ' smaller'; 192 } 193 194 // Small beautification for pattern examples. 195 var title = h1.innerHTML; 196 title = title.replace(/^(Java|C\+\+|C#|PHP|Python|Ruby|Delphi): (.*)$/, '<strong>$1:</strong> $2'); 197 h1.innerHTML = title; 198 </script>
198 199 200 201 <h2 style="margin-top:20px;">For people who want to become programming ninjas</h2> 202 203<p>SourceMaking.com was created back in 2006 to become the source of inspiration for people who already know how to code, but want to develop and perfect their knowledge and programming skills. We have assembled a large number of materials on this site that can not only expand your knowledge about programming, but can also structure the experience you already have.</p> 204 205<p>By furnishing our materials with numerous illustrations and real-life examples, we have tried to debunk the myth that information about programming always has to be dry and boring. And we hope that you like the result.</p> 206 207<h2>Our content and code</h2> 208 209<p>Our content and code is licensed under a <a href="http://creativecommons.org/licenses/by-nc-nd/4.0/">Creative Commons Attribution-Noncommercial-No Derivative Works 4.0 Unported License</a>. You can freely use our content for any non-commercial purposes as long as you provide an appropriate credit or link to original content. We also welcome translation.</p> 210 211<h2>Talk to us</h2> 212 213<p>We love to hear your opinions! Tweet us <a href="https://twitter.com/sourcemaking">@sourcemaking</a> to provide feedback on our content.</p> 214 215<p>Have another sort of question? <a href="https://sourcemaking.userecho.com/?show_feedback_form_private=true" rel="nofollow">Send us a request</a> or just mail it to <a href="mailto:[email protected]">[email protected]</a>. We usually respond within a few hours.</p> 216 </article> 217 218</div> 219 220<aside class="feature content-secondary"> 221 </aside> 222 </div> 223 </main> 224 225 <aside class="sidebar main-menu"> 226 <div class="main-menu-controls"> 227 <button class="navigation-toggle"><i class="fa fa-fw fa-times"></i></button> 228 </div> 229 <div class="main-menu-list-wrapper nano"> 230 <div class="main-menu-list nano-content"> 231 <a class="menu-brand" href="/"> 232 <img width=250 height=312 alt="SourceMaking" src="/images/content-public/logos/logo.png?id=55f0872eb5fd4505a39679db5f702b58" srcset="/images/content-public/logos/logo-2x.png?id=fee3b4b0a14ba60dc0fe368695d78be9 2x"> 233 </a> 234 235 <div class="menu-container" style="position: relative"> 236 <ul class="menu-list"> 237 <li class="featured"> 238 <a href="/store"> 239 <i class="fa fa-fw fa-star" aria-hidden="true"></i> Premium Stuff 240 </a> 241 242 <ul > 243 <li class="featured menu-fs15"> 244 <a href="/design-patterns-ebook"> 245 <i class="fa fa-fw fa-book" aria-hidden="true"></i> Dive Into Design Patterns 246 </a> 247 248 249 </li> 250 <li class="featured menu-fs15"> 251 <a href="/refactoring-course"> 252 <i class="fa fa-fw fa-graduation-cap" aria-hidden="true"></i> Dive Into Refactoring 253 </a> 254 255 256 </li> 257 <li class="featured menu-fs15"> 258 <a href="/computer-science-distilled"> 259 <i class="fa fa-fw fa-book" aria-hidden="true"></i> Computer Science Distilled 260 </a> 261 262 263 </li> 264 </ul> 265 266 </li> 267 <li class=""> 268 <a href="/design_patterns"> 269 <i class="fa fa-fw fa-puzzle-piece" aria-hidden="true"></i> Design Patterns 270 </a> 271 272 <ul > 273 <li class=""> 274 <a href="/design_patterns/creational_patterns"> 275 Creational patterns 276 </a> 277 278 <ul > 279 <li class=""> 280 <a href="/design_patterns/abstract_factory"> 281 Abstract Factory Design Pattern 282 </a> 283 284 285 </li> 286 <li class=""> 287 <a href="/design_patterns/builder"> 288 Builder Design Pattern 289 </a> 290 291 292 </li> 293 <li class=""> 294 <a href="/design_patterns/factory_method"> 295 Factory Method Design Pattern 296 </a> 297 298 299 </li> 300 <li class=""> 301 <a href="/design_patterns/object_pool"> 302 Object Pool Design Pattern 303 </a> 304 305 306 </li> 307 <li class=""> 308 <a href="/design_patterns/prototype"> 309 Prototype Design Pattern 310 </a> 311 312 313 </li> 314 <li class=""> 315 <a href="/design_patterns/singleton"> 316 Singleton Design Pattern 317 </a> 318 319 320 </li> 321 </ul> 322 323 </li> 324 <li class=""> 325 <a href="/design_patterns/structural_patterns"> 326 Structural patterns 327 </a> 328 329 <ul > 330 <li class=""> 331 <a href="/design_patterns/adapter"> 332 Adapter Design Pattern 333 </a> 334 335 336 </li> 337 <li class=""> 338 <a href="/design_patterns/bridge"> 339 Bridge Design Pattern 340 </a> 341 342 343 </li> 344 <li class=""> 345 <a href="/design_patterns/composite"> 346 Composite Design Pattern 347 </a> 348 349 350 </li> 351 <li class=""> 352 <a href="/design_patterns/decorator"> 353 Decorator Design Pattern 354 </a> 355 356 357 </li> 358 <li class=""> 359 <a href="/design_patterns/facade"> 360 Facade Design Pattern 361 </a> 362 363 364 </li> 365 <li class=""> 366 <a href="/design_patterns/flyweight"> 367 Flyweight Design Pattern 368 </a> 369 370 371 </li> 372 <li class=""> 373 <a href="/design_patterns/private_class_data"> 374 Private Class Data 375 </a> 376 377 378 </li> 379 <li class=""> 380 <a href="/design_patterns/proxy"> 381 Proxy Design Pattern 382 </a> 383 384 385 </li> 386 </ul> 387 388 </li> 389 <li class=""> 390 <a href="/design_patterns/behavioral_patterns"> 391 Behavioral patterns 392 </a> 393 394 <ul > 395 <li class=""> 396 <a href="/design_patterns/chain_of_responsibility"> 397 Chain of Responsibility 398 </a> 399 400 401 </li> 402 <li class=""> 403 <a href="/design_patterns/command"> 404 Command Design Pattern 405 </a> 406 407 408 </li> 409 <li class=""> 410 <a href="/design_patterns/interpreter"> 411 Interpreter Design Pattern 412 </a> 413 414 415 </li> 416 <li class=""> 417 <a href="/design_patterns/iterator"> 418 Iterator Design Pattern 419 </a> 420 421 422 </li> 423 <li class=""> 424 <a href="/design_patterns/mediator"> 425 Mediator Design Pattern 426 </a> 427 428 429 </li> 430 <li class=""> 431 <a href="/design_patterns/memento"> 432 Memento Design Pattern 433 </a> 434 435 436 </li> 437 <li class=""> 438 <a href="/design_patterns/null_object"> 439 Null Object Design Pattern 440 </a> 441 442 443 </li> 444 <li class=""> 445 <a href="/design_patterns/observer"> 446 Observer Design Pattern 447 </a> 448 449 450 </li> 451 <li class=""> 452 <a href="/design_patterns/state"> 453 State Design Pattern 454 </a> 455 456 457 </li> 458 <li class=""> 459 <a href="/design_patterns/strategy"> 460 Strategy Design Pattern 461 </a> 462 463 464 </li> 465 <li class=""> 466 <a href="/design_patterns/template_method"> 467 Template Method Design Pattern 468 </a> 469 470 471 </li> 472 <li class=""> 473 <a href="/design_patterns/visitor"> 474 Visitor Design Pattern 475 </a> 476 477 478 </li> 479 </ul> 480 481 </li> 482 </ul> 483 484 </li> 485 <li class=""> 486 <a href="/refactoring"> 487 <i class="fa fa-fw fa-scissors" aria-hidden="true"></i> Refactoring 488 </a> 489 490 <ul > 491 <li class=""> 492 <a href="/refactoring/smells"> 493 Code Smells 494 </a> 495 496 <ul > 497 <li class="">
498 <a href="/refactoring/smells/bloaters"> 499 Bloaters 500 </a> 501 502 <ul > 503 <li class=""> 504 <a href="/refactoring/smells/long-method"> 505 Long Method 506 </a> 507 508 509 </li> 510 <li class=""> 511 <a href="/refactoring/smells/large-class"> 512 Large Class 513 </a> 514 515 516 </li> 517 <li class=""> 518 <a href="/refactoring/smells/primitive-obsession"> 519 Primitive Obsession 520 </a> 521 522 523 </li> 524 <li class=""> 525 <a href="/refactoring/smells/long-parameter-list"> 526 Long Parameter List 527 </a> 528 529 530 </li> 531 <li class=""> 532 <a href="/refactoring/smells/data-clumps"> 533 Data Clumps 534 </a> 535 536 537 </li> 538 </ul> 539 540 </li> 541 <li class="">
542 <a href="/refactoring/smells/oo-abusers"> 543 Object-Orientation Abusers 544 </a> 545 546 <ul > 547 <li class=""> 548 <a href="/refactoring/smells/switch-statements"> 549 Switch Statements 550 </a> 551 552 553 </li> 554 <li class=""> 555 <a href="/refactoring/smells/temporary-field"> 556 Temporary Field 557 </a> 558 559 560 </li> 561 <li class=""> 562 <a href="/refactoring/smells/refused-bequest"> 563 Refused Bequest 564 </a> 565 566 567 </li> 568 <li class=""> 569 <a href="/refactoring/smells/alternative-classes-with-different-interfaces"> 570 Alternative Classes with Different Interfaces 571 </a> 572 573 574 </li> 575 </ul> 576 577 </li> 578 <li class=""> 579 <a href="/refactoring/smells/change-preventers"> 580 Change Preventers 581 </a> 582 583 <ul > 584 <li class=""> 585 <a href="/refactoring/smells/divergent-change"> 586 Divergent Change 587 </a> 588 589 590 </li> 591 <li class=""> 592 <a href="/refactoring/smells/shotgun-surgery"> 593 Shotgun Surgery 594 </a> 595 596 597 </li> 598 <li class=""> 599 <a href="/refactoring/smells/parallel-inheritance-hierarchies"> 600 Parallel Inheritance Hierarchies 601 </a> 602 603 604 </li> 605 </ul> 606 607 </li> 608 <li class=""> 609 <a href="/refactoring/smells/dispensables"> 610 Dispensables 611 </a> 612 613 <ul > 614 <li class=""> 615 <a href="/refactoring/smells/comments"> 616 Comments 617 </a> 618 619 620 </li> 621 <li class=""> 622 <a href="/refactoring/smells/duplicate-code"> 623 Duplicate Code 624 </a> 625 626 627 </li> 628 <li class=""> 629 <a href="/refactoring/smells/lazy-class"> 630 Lazy Class 631 </a> 632 633 634 </li> 635 <li class=""> 636 <a href="/refactoring/smells/data-class"> 637 Data Class 638 </a> 639 640 641 </li> 642 <li class=""> 643 <a href="/refactoring/smells/dead-code"> 644 Dead Code 645 </a> 646 647 648 </li> 649 <li class=""> 650 <a href="/refactoring/smells/speculative-generality"> 651 Speculative Generality 652 </a> 653 654 655 </li> 656 </ul> 657 658 </li> 659 <li class=""> 660 <a href="/refactoring/smells/couplers"> 661 Couplers 662 </a> 663 664 <ul > 665 <li class=""> 666 <a href="/refactoring/smells/feature-envy"> 667 Feature Envy 668 </a> 669 670 671 </li> 672 <li class=""> 673 <a href="/refactoring/smells/inappropriate-intimacy"> 674 Inappropriate Intimacy 675 </a> 676 677 678 </li> 679 <li class=""> 680 <a href="/refactoring/smells/message-chains"> 681 Message Chains 682 </a> 683 684 685 </li> 686 <li class=""> 687 <a href="/refactoring/smells/middle-man"> 688 Middle Man 689 </a> 690 691 692 </li> 693 </ul> 694 695 </li> 696 <li class="">
697 <a href="/refactoring/smells/other"> 698 Other Smells 699 </a> 700 701 <ul > 702 <li class=""> 703 <a href="/refactoring/smells/incomplete-library-class"> 704 Incomplete Library Class 705 </a> 706 707 708 </li> 709 </ul> 710 711 </li> 712 </ul> 713 714 </li> 715 <li class=""> 716 <a href="/refactoring/refactorings"> 717 Refactoring techniques 718 </a> 719 720 <ul > 721 <li class=""> 722 <a href="/refactoring/composing-methods"> 723 Composing Methods 724 </a> 725 726 <ul > 727 <li class=""> 728 <a href="/refactoring/extract-method"> 729 Extract Method 730 </a> 731 732 733 </li> 734 <li class=""> 735 <a href="/refactoring/inline-method"> 736 Inline Method 737 </a> 738 739 740 </li> 741 <li class=""> 742 <a href="/refactoring/extract-variable"> 743 Extract Variable 744 </a> 745 746 747 </li> 748 <li class=""> 749 <a href="/refactoring/inline-temp"> 750 Inline Temp 751 </a> 752 753 754 </li> 755 <li class=""> 756 <a href="/refactoring/replace-temp-with-query"> 757 Replace Temp with Query 758 </a> 759 760 761 </li> 762 <li class=""> 763 <a href="/refactoring/split-temporary-variable"> 764 Split Temporary Variable 765 </a> 766 767 768 </li> 769 <li class=""> 770 <a href="/refactoring/remove-assignments-to-parameters"> 771 Remove Assignments to Parameters 772 </a> 773 774 775 </li> 776 <li class=""> 777 <a href="/refactoring/replace-method-with-method-object"> 778 Replace Method with Method Object 779 </a> 780 781 782 </li> 783 <li class=""> 784 <a href="/refactoring/substitute-algorithm"> 785 Substitute Algorithm 786 </a> 787 788 789 </li> 790 </ul> 791 792 </li> 793 <li class=""> 794 <a href="/refactoring/moving-features-between-objects"> 795 Moving Features between Objects 796 </a> 797 798 <ul > 799 <li class=""> 800 <a href="/refactoring/move-method"> 801 Move Method 802 </a> 803 804 805 </li> 806 <li class=""> 807 <a href="/refactoring/move-field"> 808 Move Field 809 </a> 810 811 812 </li> 813 <li class=""> 814 <a href="/refactoring/extract-class"> 815 Extract Class 816 </a> 817 818 819 </li> 820 <li class=""> 821 <a href="/refactoring/inline-class"> 822 Inline Class 823 </a> 824 825 826 </li> 827 <li class=""> 828 <a href="/refactoring/hide-delegate"> 829 Hide Delegate 830 </a> 831 832 833 </li> 834 <li class=""> 835 <a href="/refactoring/remove-middle-man"> 836 Remove Middle Man 837 </a> 838 839 840 </li> 841 <li class=""> 842 <a href="/refactoring/introduce-foreign-method"> 843 Introduce Foreign Method 844 </a> 845 846 847 </li> 848 <li class=""> 849 <a href="/refactoring/introduce-local-extension"> 850 Introduce Local Extension 851 </a> 852 853 854 </li> 855 </ul> 856 857 </li> 858 <li class=""> 859 <a href="/refactoring/organizing-data"> 860 Organizing Data 861 </a> 862 863 <ul > 864 <li class=""> 865 <a href="/refactoring/self-encapsulate-field"> 866 Self Encapsulate Field 867 </a> 868 869 870 </li> 871 <li class=""> 872 <a href="/refactoring/replace-data-value-with-object"> 873 Replace Data Value with Object 874 </a> 875 876 877 </li> 878 <li class=""> 879 <a href="/refactoring/change-value-to-reference"> 880 Change Value to Reference 881 </a> 882 883 884 </li> 885 <li class=""> 886 <a href="/refactoring/change-reference-to-value"> 887 Change Reference to Value 888 </a> 889 890 891 </li> 892 <li class=""> 893 <a href="/refactoring/replace-array-with-object"> 894 Replace Array with Object 895 </a> 896 897 898 </li> 899 <li class=""> 900 <a href="/refactoring/duplicate-observed-data"> 901 Duplicate Observed Data 902 </a> 903 904 905 </li> 906 <li class=""> 907 <a href="/refactoring/change-unidirectional-association-to-bidirectional"> 908 Change Unidirectional Association to Bidirectional 909 </a> 910 911 912 </li> 913 <li class=""> 914 <a href="/refactoring/change-bidirectional-association-to-unidirectional"> 915 Change Bidirectional Association to Unidirectional 916 </a> 917 918 919 </li> 920 <li class=""> 921 <a href="/refactoring/replace-magic-number-with-symbolic-constant"> 922 Replace Magic Number with Symbolic Constant 923 </a> 924 925 926 </li> 927 <li class=""> 928 <a href="/refactoring/encapsulate-field"> 929 Encapsulate Field 930 </a> 931 932 933 </li> 934 <li class=""> 935 <a href="/refactoring/encapsulate-collection"> 936 Encapsulate Collection 937 </a> 938 939 940 </li> 941 <li class=""> 942 <a href="/refactoring/replace-type-code-with-class"> 943 Replace Type Code with Class 944 </a> 945 946 947 </li> 948 <li class=""> 949 <a href="/refactoring/replace-type-code-with-subclasses"> 950 Replace Type Code with Subclasses 951 </a> 952 953 954 </li> 955 <li class=""> 956 <a href="/refactoring/replace-type-code-with-state-strategy"> 957 Replace Type Code with State/Strategy 958 </a> 959 960 961 </li> 962 <li class=""> 963 <a href="/refactoring/replace-subclass-with-fields"> 964 Replace Subclass with Fields 965 </a> 966 967 968 </li> 969 </ul> 970 971 </li> 972 <li class=""> 973 <a href="/refactoring/simplifying-conditional-expressions"> 974 Simplifying Conditional Expressions 975 </a> 976 977 <ul > 978 <li class=""> 979 <a href="/refactoring/decompose-conditional"> 980 Decompose Conditional 981 </a> 982 983 984 </li> 985 <li class=""> 986 <a href="/refactoring/consolidate-conditional-expression"> 987 Consolidate Conditional Expression 988 </a> 989 990 991 </li> 992 <li class=""> 993 <a href="/refactoring/consolidate-duplicate-conditional-fragments"> 994 Consolidate Duplicate Conditional Fragments 995 </a> 996 997 998 </li> 999 <li class=""> 1000 <a href="/refactoring/remove-control-flag"> 1001 Remove Control Flag 1002 </a> 1003 1004 1005 </li> 1006 <li class=""> 1007 <a href="/refactoring/replace-nested-conditional-with-guard-clauses"> 1008 Replace Nested Conditional with Guard Clauses 1009 </a> 1010 1011 1012 </li> 1013 <li class=""> 1014 <a href="/refactoring/replace-conditional-with-polymorphism"> 1015 Replace Conditional with Polymorphism 1016 </a> 1017 1018 1019 </li> 1020 <li class=""> 1021 <a href="/refactoring/introduce-null-object"> 1022 Introduce Null Object 1023 </a> 1024 1025 1026 </li> 1027 <li class=""> 1028 <a href="/refactoring/introduce-assertion"> 1029 Introduce Assertion 1030 </a> 1031 1032 1033 </li> 1034 </ul> 1035 1036 </li> 1037 <li class=""> 1038 <a href="/refactoring/simplifying-method-calls"> 1039 Simplifying Method Calls 1040 </a> 1041 1042 <ul > 1043 <li class=""> 1044 <a href="/refactoring/rename-method"> 1045 Rename Method 1046 </a> 1047 1048 1049 </li> 1050 <li class=""> 1051 <a href="/refactoring/add-parameter"> 1052 Add Parameter 1053 </a> 1054 1055 1056 </li> 1057 <li class=""> 1058 <a href="/refactoring/remove-parameter"> 1059 Remove Parameter 1060 </a> 1061 1062 1063 </li> 1064 <li class=""> 1065 <a href="/refactoring/separate-query-from-modifier"> 1066 Separate Query from Modifier 1067 </a> 1068 1069 1070 </li> 1071 <li class=""> 1072 <a href="/refactoring/parameterize-method"> 1073 Parameterize Method 1074 </a> 1075 1076 1077 </li> 1078 <li class=""> 1079 <a href="/refactoring/replace-parameter-with-explicit-methods"> 1080 Replace Parameter with Explicit Methods 1081 </a> 1082 1083 1084 </li> 1085 <li class=""> 1086 <a href="/refactoring/preserve-whole-object"> 1087 Preserve Whole Object 1088 </a> 1089 1090 1091 </li> 1092 <li class=""> 1093 <a href="/refactoring/replace-parameter-with-method-call"> 1094 Replace Parameter with Method Call 1095 </a> 1096 1097 1098 </li> 1099 <li class=""> 1100 <a href="/refactoring/introduce-parameter-object"> 1101 Introduce Parameter Object 1102 </a> 1103 1104 1105 </li> 1106 <li class=""> 1107 <a href="/refactoring/remove-setting-method"> 1108 Remove Setting Method 1109 </a> 1110 1111 1112 </li> 1113 <li class=""> 1114 <a href="/refactoring/hide-method"> 1115 Hide Method 1116 </a> 1117 1118 1119 </li> 1120 <li class=""> 1121 <a href="/refactoring/replace-constructor-with-factory-method"> 1122 Replace Constructor with Factory Method 1123 </a> 1124 1125 1126 </li> 1127 <li class=""> 1128 <a href="/refactoring/replace-error-code-with-exception"> 1129 Replace Error Code with Exception 1130 </a> 1131 1132 1133 </li> 1134 <li class=""> 1135 <a href="/refactoring/replace-exception-with-test"> 1136 Replace Exception with Test 1137 </a> 1138 1139 1140 </li> 1141 </ul> 1142 1143 </li> 1144 <li class=""> 1145 <a href="/refactoring/dealing-with-generalisation"> 1146 Dealing with Generalisation 1147 </a> 1148 1149 <ul > 1150 <li class=""> 1151 <a href="/refactoring/pull-up-field"> 1152 Pull Up Field 1153 </a> 1154 1155 1156 </li> 1157 <li class=""> 1158 <a href="/refactoring/pull-up-method"> 1159 Pull Up Method 1160 </a> 1161 1162 1163 </li> 1164 <li class=""> 1165 <a href="/refactoring/pull-up-constructor-body"> 1166 Pull Up Constructor Body 1167 </a> 1168 1169 1170 </li> 1171 <li class=""> 1172 <a href="/refactoring/push-down-method"> 1173 Push Down Method 1174 </a> 1175 1176 1177 </li> 1178 <li class=""> 1179 <a href="/refactoring/push-down-field"> 1180 Push Down Field 1181 </a> 1182 1183 1184 </li> 1185 <li class=""> 1186 <a href="/refactoring/extract-subclass"> 1187 Extract Subclass 1188 </a> 1189 1190 1191 </li> 1192 <li class=""> 1193 <a href="/refactoring/extract-superclass"> 1194 Extract Superclass 1195 </a> 1196 1197 1198 </li> 1199 <li class=""> 1200 <a href="/refactoring/extract-interface"> 1201 Extract Interface 1202 </a> 1203 1204 1205 </li> 1206 <li class=""> 1207 <a href="/refactoring/collapse-hierarchy"> 1208 Collapse Hierarchy 1209 </a> 1210 1211 1212 </li> 1213 <li class=""> 1214 <a href="/refactoring/form-template-method"> 1215 Form Template Method 1216 </a> 1217 1218 1219 </li> 1220 <li class=""> 1221 <a href="/refactoring/replace-inheritance-with-delegation"> 1222 Replace Inheritance with Delegation 1223 </a> 1224 1225 1226 </li> 1227 <li class=""> 1228 <a href="/refactoring/replace-delegation-with-inheritance"> 1229 Replace Delegation with Inheritance 1230 </a> 1231 1232 1233 </li> 1234 </ul> 1235 1236 </li> 1237 </ul> 1238 1239 </li> 1240 </ul> 1241 1242 </li> 1243 <li class=""> 1244 <a href="/uml"> 1245 <i class="fa fa-fw fa-sitemap" aria-hidden="true"></i> UML 1246 </a> 1247 1248 <ul > 1249 <li class=""> 1250 <a href="/uml/introduction"> 1251 Introduction 1252 </a> 1253 1254 1255 </li> 1256 <li class=""> 1257 <a href="/uml/basic-principles">
1258 Basic Principles and Background 1259 </a> 1260 1261 <ul > 1262 <li class=""> 1263 <a href="/uml/basic-principles-and-background/introduction-to-the-case-study"> 1264 Introduction to the Case Study 1265 </a> 1266 1267 1268 </li> 1269 <li class=""> 1270 <a href="/uml/basic-principles-and-background/models-views-and-diagrams"> 1271 Models, Views, and Diagrams 1272 </a> 1273 1274 1275 </li> 1276 <li class=""> 1277 <a href="/uml/basic-principles-and-background/information-systems-and-it-systems"> 1278 Information Systems and IT Systems 1279 </a> 1280 1281 1282 </li> 1283 <li class=""> 1284 <a href="/uml/basic-principles-and-background/the-models-of-our-case-study"> 1285 The Models of our Case Study 1286 </a> 1287 1288 1289 </li> 1290 <li class=""> 1291 <a href="/uml/basic-principles-and-background/history-of-uml-methods-and-notations"> 1292 History of UML: Methods and Notations 1293 </a> 1294 1295 1296 </li> 1297 <li class=""> 1298 <a href="/uml/basic-principles-and-background/requirement-specification"> 1299 Requirement Specification 1300 </a> 1301 1302 1303 </li> 1304 <li class=""> 1305 <a href="/uml/basic-principles-and-background/uml2"> 1306 UML 2.0 1307 </a> 1308 1309 1310 </li> 1311 </ul> 1312 1313 </li> 1314 <li class=""> 1315 <a href="/uml/modeling-business-systems"> 1316 Modeling Business Systems 1317 </a> 1318 1319 <ul > 1320 <li class=""> 1321 <a href="/uml/modeling-business-systems/business-processes-and-business-systems"> 1322 Business Processes and Business Systems 1323 </a> 1324 1325 1326 </li> 1327 <li class=""> 1328 <a href="/uml/modeling-business-systems/one-model-two-views"> 1329 One ModelâTwo Views 1330 </a> 1331 1332 1333 </li> 1334 <li class=""> 1335 <a href="/uml/modeling-business-systems/external-view"> 1336 External View 1337 </a> 1338 1339 1340 </li> 1341 <li class=""> 1342 <a href="/uml/modeling-business-systems/the-elements-of-view"> 1343 The Elements of a View 1344 </a> 1345 1346 1347 </li> 1348 <li class=""> 1349 <a href="/uml/modeling-business-systems/external-view/use-case-diagrams"> 1350 Use Case Diagrams 1351 </a> 1352 1353 1354 </li> 1355 <li class=""> 1356 <a href="/uml/modeling-business-systems/external-view/constructing-use-case-diagrams"> 1357 Constructing Use Case Diagrams 1358 </a> 1359 1360 1361 </li> 1362 <li class=""> 1363 <a href="/uml/modeling-business-systems/external-view/activity-diagrams"> 1364 Activity Diagrams 1365 </a> 1366 1367 1368 </li> 1369 <li class=""> 1370 <a href="/uml/modeling-business-systems/external-view/constructing-activity-diagrams"> 1371 Constructing Activity Diagrams 1372 </a> 1373 1374 1375 </li> 1376 <li class=""> 1377 <a href="/uml/modeling-business-systems/external-view/sequence-diagrams"> 1378 Sequence Diagrams 1379 </a> 1380 1381 1382 </li> 1383 <li class=""> 1384 <a href="/uml/modeling-business-systems/external-view/constructing-sequence-diagrams"> 1385 Constructing Sequence Diagrams 1386 </a> 1387 1388 1389 </li> 1390 <li class=""> 1391 <a href="/uml/modeling-business-systems/external-view/high-level-sequence-diagrams"> 1392 High-Level Sequence Diagrams 1393 </a> 1394 1395 1396 </li> 1397 <li class=""> 1398 <a href="/uml/modeling-business-systems/external-view/sequence-diagrams-for-scenarios-of-business-use-cases"> 1399 Sequence Diagrams for Scenarios of Business Use Cases 1400 </a> 1401 1402 1403 </li> 1404 <li class=""> 1405 <a href="/uml/modeling-business-systems/the-internal-view"> 1406 Internal View 1407 </a> 1408 1409 1410 </li> 1411 <li class=""> 1412 <a href="/uml/modeling-business-systems/internal-view/package-diagram"> 1413 Package Diagram 1414 </a> 1415 1416 1417 </li> 1418 <li class=""> 1419 <a href="/uml/modeling-business-systems/internal-view/constructing-package-diagrams"> 1420 Constructing Package Diagrams 1421 </a> 1422 1423 1424 </li> 1425 <li class=""> 1426 <a href="/uml/modeling-business-systems/internal-view/class-diagram"> 1427 Class Diagram 1428 </a> 1429 1430 1431 </li> 1432 <li class=""> 1433 <a href="/uml/modeling-business-systems/internal-view/constructing-class-diagrams"> 1434 Constructing Class Diagrams 1435 </a> 1436 1437 1438 </li> 1439 <li class=""> 1440 <a href="/uml/modeling-business-systems/internal-view/activity-diagram"> 1441 Activity Diagram 1442 </a> 1443 1444 1445 </li> 1446 </ul> 1447 1448 </li> 1449 <li class=""> 1450 <a href="/uml/modeling-it-systems"> 1451 Modeling IT Systems 1452 </a> 1453 1454 <ul > 1455 <li class=""> 1456 <a href="/uml/modeling-it-systems/external-view"> 1457 External View 1458 </a> 1459 1460 1461 </li> 1462 <li class=""> 1463 <a href="/uml/modeling-it-systems/external-view/the-user-view-or-i-dont-care-how-it-works-as-long-as-it-works"> 1464 The User View or "I don't care how it works, as long as it works." 1465 </a> 1466 1467 1468 </li> 1469 <li class=""> 1470 <a href="/uml/modeling-it-systems/external-view/the-elements-of-view"> 1471 The Elements of a View 1472 </a> 1473 1474 1475 </li> 1476 <li class=""> 1477 <a href="/uml/modeling-it-systems/external-view/the-elements-of-view/use-case-diagram"> 1478 Use Case Diagram 1479 </a> 1480 1481 1482 </li> 1483 <li class=""> 1484 <a href="/uml/modeling-it-systems/external-view/query-events-and-mutation-events"> 1485 Query Events and Mutation Events 1486 </a> 1487 1488 1489 </li> 1490 <li class=""> 1491 <a href="/uml/modeling-it-systems/external-view/use-case-sequence-diagram"> 1492 Use Case Sequence Diagram 1493 </a> 1494 1495 1496 </li> 1497 <li class=""> 1498 <a href="/uml/modeling-it-systems/external-view/constructing-the-external-view"> 1499 Constructing the External View 1500 </a> 1501 1502 1503 </li> 1504 <li class=""> 1505 <a href="/uml/modeling-it-systems/structural-view"> 1506 Structural View 1507 </a> 1508 1509 1510 </li> 1511 <li class=""> 1512 <a href="/uml/modeling-it-systems/structural-view/objects-and-classe
1512s"> 1513 Objects and Classes 1514 </a> 1515 1516 1517 </li> 1518 <li class=""> 1519 <a href="/uml/modeling-it-systems/structural-view/generalization-specialization-and-inheritance"> 1520 Generalization, Specialization, and Inheritance 1521 </a> 1522 1523 1524 </li> 1525 <li class=""> 1526 <a href="/uml/modeling-it-systems/structural-view/static-and-dynamic-business-rules"> 1527 Static and Dynamic Business Rules 1528 </a> 1529 1530 1531 </li> 1532 <li class=""> 1533 <a href="/uml/modeling-it-systems/structural-view/elements-of-the-view"> 1534 Elements of the View 1535 </a> 1536 1537 1538 </li> 1539 <li class=""> 1540 <a href="/uml/modeling-it-systems/structural-view/class-diagram"> 1541 Class Diagram 1542 </a> 1543 1544 1545 </li> 1546 <li class=""> 1547 <a href="/uml/modeling-it-systems/structural-view/constructing-class-diagrams"> 1548 Constructing Class Diagrams 1549 </a> 1550 1551 1552 </li> 1553 <li class=""> 1554 <a href="/uml/modeling-it-systems/the-behavioral-view"> 1555 The Behavioral View 1556 </a> 1557 1558 1559 </li> 1560 <li class=""> 1561 <a href="/uml/modeling-it-systems/the-behavioral-view/the-life-of-an-object"> 1562 The Life of an Object 1563 </a> 1564 1565 1566 </li> 1567 <li class=""> 1568 <a href="/uml/modeling-it-systems/the-behavioral-view/the-elements-of-the-view"> 1569 The Elements of the View 1570 </a> 1571 1572 1573 </li> 1574 <li class=""> 1575 <a href="/uml/modeling-it-systems/the-behavioral-view/statechart-diagram"> 1576 Statechart Diagram 1577 </a> 1578 1579 1580 </li> 1581 <li class=""> 1582 <a href="/uml/modeling-it-systems/the-behavioral-view/constructing-statechart-diagrams"> 1583 Constructing Statechart Diagrams 1584 </a> 1585 1586 1587 </li> 1588 <li class=""> 1589 <a href="/uml/modeling-it-systems/interaction-view"> 1590 Interaction View 1591 </a> 1592 1593 1594 </li> 1595 <li class=""> 1596 <a href="/uml/modeling-it-systems/interaction-view/seeing-what-happens-inside-the-it-system"> 1597 Seeing What Happens Inside the IT System 1598 </a> 1599 1600 1601 </li> 1602 <li class=""> 1603 <a href="/uml/modeling-it-systems/interaction-view/elements-of-the-view"> 1604 Elements of the View 1605 </a> 1606 1607 1608 </li> 1609 <li class=""> 1610 <a href="/uml/modeling-it-systems/interaction-view/communication-diagram"> 1611 Communication Diagram 1612 </a> 1613 1614 1615 </li> 1616 <li class=""> 1617 <a href="/uml/modeling-it-systems/interaction-view/sequence-diagram"> 1618 Sequence Diagram 1619 </a> 1620 1621 1622 </li> 1623 <li class=""> 1624 <a href="/uml/modeling-it-systems/interaction-view/constructing-communication-diagrams"> 1625 Constructing Communication Diagrams 1626 </a> 1627 1628 1629 </li> 1630 <li class=""> 1631 <a href="/uml/modeling-it-systems/interaction-view/constructing-sequence-diagrams"> 1632 Constructing Sequence Diagrams 1633 </a> 1634 1635 1636 </li> 1637 </ul> 1638 1639 </li> 1640 <li class=""> 1641 <a href="/uml/modeling-for-system-integration"> 1642 Modeling for System Integration 1643 </a> 1644 1645 <ul > 1646 <li class=""> 1647 <a href="/uml/modeling-for-system-integration/terminology-of-system-integration"> 1648 Terminology of System Integration 1649 </a> 1650 1651 1652 </li> 1653 <li class=""> 1654 <a href="/uml/modeling-for-system-integration/messages-in-uml"> 1655 Messages in UML 1656 </a> 1657 1658 1659 </li> 1660 <li class=""> 1661 <a href="/uml/modeling-for-system-integration/one-model-two-views"> 1662 One ModelâTwo Views 1663 </a> 1664 1665 1666 </li> 1667 <li class=""> 1668 <a href="/uml/modeling-for-system-integration/process-view"> 1669 Process View 1670 </a> 1671 1672 1673 </li> 1674 <li class=""> 1675 <a href="/uml/modeling-for-system-integration/process-view/the-business-system-model-as-foundation">
1676 The Business System Model as Foundation 1677 </a> 1678 1679 1680 </li> 1681 <li class=""> 1682 <a href="/uml/modeling-for-system-integration/process-view/elements-of-the-view"> 1683 Elements of the View 1684 </a> 1685 1686 1687 </li> 1688 <li class=""> 1689 <a href="/uml/modeling-for-system-integration/process-view/activity-diagrams"> 1690 Activity Diagrams 1691 </a> 1692 1693 1694 </li> 1695 <li class=""> 1696 <a href="/uml/modeling-for-system-integration/process-view/sequence-diagram"> 1697 Sequence Diagram 1698 </a> 1699 1700 1701 </li> 1702 <li class=""> 1703 <a href="/uml/modeling-for-system-integration/process-view/constructing-diagrams-in-the-process-view"> 1704 Constructing Diagrams in the Process View 1705 </a> 1706 1707 1708 </li> 1709 <li class=""> 1710 <a href="/uml/modeling-for-system-integration/the-static-view"> 1711 The Static View 1712 </a> 1713 1714 1715 </li> 1716 <li class=""> 1717 <a href="/uml/modeling-for-system-integration/the-static-view/elements-of-the-view"> 1718 Elements of the View 1719 </a> 1720 1721 1722 </li> 1723 <li class=""> 1724 <a href="/uml/modeling-for-system-integration/the-static-view/class-diagram"> 1725 Class Diagram 1726 </a> 1727 1728 1729 </li> 1730 <li class=""> 1731 <a href="/uml/modeling-for-system-integration/the-static-view/constructing-class-diagrams"> 1732 Constructing Class Diagrams 1733 </a> 1734 1735 1736 </li> 1737 <li class=""> 1738 <a href="/uml/modeling-for-system-integration/the-static-view/transforming-data-from-the-it-system-to-the-mess"> 1739 Transforming Data from the IT System to the Message "passenger list" 1740 </a> 1741 1742 1743 </li> 1744 <li class=""> 1745 <a href="/uml/modeling-for-system-integration/the-static-view/transformation-of-uml-messages-into-various-stan"> 1746 Transformation of UML Messages into Various Standard Formats 1747 </a> 1748 1749 1750 </li> 1751 </ul> 1752 1753 </li> 1754 </ul> 1755 1756 </li> 1757 </ul> 1758 1759 </div> 1760 1761 <div class="main-menu-aux-controls"> 1762 <a href="https://sourcemaking.com/login" title="Sign in"><svg style="width: 16px; height: 16px; filter:drop-shadow(0 1px 1px #0d5e4e)" class="inline-block mx-0" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor"opacity=".4" fill="currentColor" d="M386.4 320c9.7 128.3 47.9 224 93.6 224 53 0 96-128.9 96-288S533-32 480-32c-41.8 0-77.4 80.2-90.6 192.2 41.6 2.8 74.6 37.5 74.6 79.8 0 43.4-34.5 78.7-77.6 80z"/><path fill="currentColor"fill="currentColor" d="M256-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM123.1 176c-3.3 0-6.2 2-7.4 5L93.7 235.9c-6.6 16.4-25.2 24.4-41.6 17.8s-24.4-25.2-17.8-41.6l21.9-54.9C67.2 129.9 93.6 112 123.1 112l97.3 0c28.5 0 54.8 15.1 69.1 39.7l32.8 56.3 61.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-61.6 0c-22.8 0-43.8-12.1-55.3-31.8l-10-17.1-20.7 70.4 75.4 22.6c27.7 8.3 41.8 39 30.1 65.5L285.2 509c-7.2 16.2-26.1 23.4-42.2 16.2s-23.4-26.1-16.2-42.2l49.2-110.8-95.9-28.8c-32.7-9.8-52-43.7-43.7-76.8l22.7-90.6-35.9 0zm-8 181c13.3 14.9 30.7 26.3 51.2 32.4l4.7 1.4-6.9 19.3c-5.8 16.3-16 30.8-29.3 41.8L52.4 519.8c-13.6 11.2-33.8 9.3-45-4.3s-9.3-33.8 4.3-45L94 402.5c4.5-3.7 7.8-8.5 9.8-13.9L115.1 357z"/></svg> Sign in</a> 1763 <a href="https://feedback.sourcemaking.com/" class="userecho-public" rel="nofollow" title="Contact us"><i class="fa fa-fw fa-fw fa-envelope" aria-hidden="true"></i> Contact us</a> 1764 </div> 1765 </div> 1766 </div> 1767</aside> 1768 1769 <nav class="navigation" role="navigation"> 1770 <div class="navigation-container"> 1771 <a class="navigation-brand" href="/"> 1772 <img alt="SourceMaking" 1773 src="/images/content-public/logos/logo-min-xs.png?id=f4a48661fc32a3f349b76a075f28594c"
1774 srcset="/images/content-public/logos/logo-min-xs-2x.png?id=34fc05750336c33b7815e231a0f227df 2x"> 1775 </a> 1776 1777 <div class="shop-link d-none d-lg-block" style="display: none !important;"> 1778 <a class="btn btn-md btn-primary btn-featured" href="/store"><svg style="width: 28px; height: 28px; fill: currentColor; display: inline-block; margin-top: -14px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 6.3.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M356 60l60 20-60 20-20 60-20-60L256 80l60-20L336 0l20 60zM464 208l48 16-48 16-16 48-16-48-48-16 48-16 16-48 16 48zm-243.8-9.8l33 66.9 73.8 10.7 59.8 8.7-43.3 42.2-53.4 52.1 12.6 73.5L313 512l-53.5-28.1-66-34.7-66 34.7L73.9 512l10.2-59.6 12.6-73.5L43.3 326.8 0 284.6l59.8-8.7 73.8-10.7 33-66.9L193.5 144l26.8 54.2zm26.1 114.4l-25-3.6-11.2-22.6-16.7-33.9-16.7 33.9L165.6 309l-25 3.6-37.4 5.4 27.1 26.4 18.1 17.6L144 387l-6.4 37.3 33.5-17.6 22.3-11.7 22.3 11.7 33.5 17.6L242.9 387l-4.3-24.9 18.1-17.6 27.1-26.4-37.4-5.4z"/></svg> 1779 Shop Now!</a> 1780 </div> 1781 1782 <ul class="navigation-menu"> 1783 <li class="nav-contacts"> 1784 <a class="userecho-private" href="https://feedback.sourcemaking.com/?show_feedback_form_private=true" rel="nofollow" title="Contact us"> 1785 <i class="fa fa-fw fa-envelope" aria-hidden="true"></i> <span class="caption d-none d-xl-inline-block">Contact us</span> 1786 </a> 1787 </li> 1788 <li class="nav-user"> 1789 <a href="https://sourcemaking.com/login" title="Sign in"><span class="sign-in-icon"><svg style="width: 24px; height: 24px; " class="inline-block " xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor"opacity=".4" fill="currentColor" d="M386.4 320c9.7 128.3 47.9 224 93.6 224 53 0 96-128.9 96-288S533-32 480-32c-41.8 0-77.4 80.2-90.6 192.2 41.6 2.8 74.6 37.5 74.6 79.8 0 43.4-34.5 78.7-77.6 80z"/><path fill="currentColor"fill="currentColor" d="M256-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM123.1 176c-3.3 0-6.2 2-7.4 5L93.7 235.9c-6.6 16.4-25.2 24.4-41.6 17.8s-24.4-25.2-17.8-41.6l21.9-54.9C67.2 129.9 93.6 112 123.1 112l97.3 0c28.5 0 54.8 15.1 69.1 39.7l32.8 56.3 61.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-61.6 0c-22.8 0-43.8-12.1-55.3-31.8l-10-17.1-20.7 70.4 75.4 22.6c27.7 8.3 41.8 39 30.1 65.5L285.2 509c-7.2 16.2-26.1 23.4-42.2 16.2s-23.4-26.1-16.2-42.2l49.2-110.8-95.9-28.8c-32.7-9.8-52-43.7-43.7-76.8l22.7-90.6-35.9 0zm-8 181c13.3 14.9 30.7 26.3 51.2 32.4l4.7 1.4-6.9 19.3c-5.8 16.3-16 30.8-29.3 41.8L52.4 519.8c-13.6 11.2-33.8 9.3-45-4.3s-9.3-33.8 4.3-45L94 402.5c4.5-3.7 7.8-8.5 9.8-13.9L115.1 357z"/></svg></span> <span class="account-icon" style="display:none"><svg style="width: 24px; height: 24px; " class="inline-block " xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor"opacity=".4" fill="currentColor" d="M2.2 251.7C7 263.9 18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1L464 181.5 464 80c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 12.3-90.2-83.8c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1zM144 432c0-44.2 35.8-80 80-80l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16zM312 256a56 56 0 1 1 -112 0 56 56 0 1 1 112 0z"/><path fill="currentColor"fill="currentColor" d="M256 312a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm-32 40c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0z"/></svg></span> <span class="sign-out-icon" style="display:none"><svg style="width: 24px; height: 24px; " class="inline-block " xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor"opacity=".4" fill="currentColor" d="M0 256c0 159.1 43 288 96 288 19.9 0 38.5-18.2 53.8-49.5-39.6-5-70.1-39-69.8-79.9 .3-44.2 36.3-79.8 80.5-79.5l27.8 .2c1.2-12.5 2.1-25.3 2.7-38.4-38.8-17.5-57.3-62.7-41.3-102.6l21.9-54.9C174.2 133 177.3 126.9 180.8 121.2 164.7 30 132.8-32 96-32 43-32 0 96.9 0 256z"/>
1789<path fill="currentColor"fill="currentColor" d="M360 24a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM283.1 176c-3.3 0-6.2 2-7.4 5l-21.9 54.9c-6.6 16.4-25.2 24.4-41.6 17.8s-24.4-25.2-17.8-41.6l21.9-54.9c10.9-27.3 37.4-45.3 66.9-45.3l97.3 0c28.5 0 54.8 15.1 69.1 39.7l32.8 56.3 61.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-61.6 0c-22.8 0-43.8-12.1-55.3-31.8l-10-17.1-20.7 70.4 75.4 22.6c27.7 8.3 41.8 39 30.1 65.5L445.2 509c-7.2 16.2-26.1 23.4-42.2 16.2s-23.4-26.1-16.2-42.2l49.2-110.8-95.9-28.8c-32.7-9.8-52-43.7-43.7-76.8l22.7-90.6-35.9 0zM273 362.8l2.1-5.8c13.3 14.8 30.7 26.3 51.2 32.4l4.5 1.3c-15.2 34.6-49.6 57.3-87.8 57.3L160 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l82.9 0c13.5 0 25.6-8.5 30.1-21.2z"/></svg></span> <span class="caption d-none d-xl-inline-block">Sign in</span></a> 1790 </li> 1791 <li class="nav-menu"> 1792 <button class="navigation-toggle"><i class="fa fa-fw fa-bars" aria-hidden="true"></i></button> 1793 </li> 1794 </ul> 1795 </div> 1796</nav> 1797 1798 <footer class="footer center-content"> 1799 <div class="footer-container center-content-container"> 1800 <div class="footer-inner container-fluid"> 1801 <div class="row"> 1802 <div class="col-6"> 1803 <ul class="footer-list footer-list-horizontal"> 1804 <li class="first expanded"><a href="/design_patterns">Design Patterns</a></li> 1805 <li class="expanded"><a href="/antipatterns">AntiPatterns</a></li> 1806 <li class="expanded"><a href="/refactoring">Refactoring</a></li> 1807 <li class="last expanded"><a href="/uml">UML</a></li> 1808 </ul> 1809 </div> 1810 <div class="col-6"> 1811 <ul class="footer-list footer-list-horizontal footer-links-right"> 1812 <li><a href="/home">My account</a></li> 1813 <li><a href="https://sourcemaking.userecho.com/" class="userecho-public" rel="nofollow">Forum</a></li> 1814 <li><a href="https://sourcemaking.userecho.com/?show_feedback_form_private=true" class="userecho-private" rel="nofollow">Contact 1815 us</a></li> 1816 <li><a href="/about-us">About us</a></li> 1817 </ul> 1818 </div> 1819 </div> 1820 </div> 1821 </div> 1822 <div class="footer-second"> 1823 <div class="footer-container center-content-container"> 1824 <div class="footer-inner container-fluid"> 1825 <div class="row"> 1826 <div class="col-6"> 1827 © 2007-2026 <a href="/">SourceMaking.com</a><span class="d-none d-md-inline"> / </span><br class="d-md-none">All rights reserved. 1828 </div> 1829 <div class="col-6 footer-links-right"> 1830 <a href="/terms">Terms</a> / 1831 <a href="/privacy-policy">Privacy policy</a> 1832 </div> 1833 </div> 1834 </div> 1835 </div> 1836 </div> 1837</footer> 1838</div> 1839 1840 1841
1841<script type="text/javascript"> 1842 window.PADDLE_ACCOUNT = "ES"; 1843 (function() { 1844 if (window.PADDLE_INITIALIZED) { 1845 return; 1846 } 1847 paddleInitIntervalRetryCounter = 0; 1848 let paddleInitInterval = setInterval(function () { 1849 if (typeof Paddle !== 'undefined') { 1850 clearInterval(paddleInitInterval); 1851 Paddle.Environment.set("production"); 1852 Paddle.Initialize({ 1853 token: "live_4e17ff3c8c206b5cd63bb352cf3", 1854 eventCallback: function (data) { 1855 if (data?.type === 'checkout.ping.size') { 1856 return; 1857 } 1858 const ignoredPaddleEvents = [ 1859 'checkout.loaded', 1860 'checkout.closed', 1861 'checkout.completed', 1862 'checkout.items.updated', 1863 'checkout.items.removed', 1864 'checkout.customer.created', 1865 'checkout.customer.updated', 1866 'checkout.customer.removed', 1867 'checkout.payment.selected', 1868 'checkout.payment.initiated', 1869 'checkout.payment.failed', 1870 'checkout.discount.applied', 1871 'checkout.discount.removed', 1872 ] 1873 if (!data?.name || !ignoredPaddleEvents.includes(data?.name)) { 1874 console.error(data); 1875 $.ajax({ 1876 method: "POST", 1877 url: '/ajax/error', 1878 data: { 1879 error: 'Paddle client init error.', 1880 order_id: checkout?.storage?.data?.id, 1881 data: data, 1882 }, 1883 dataType: 'json', 1884 crossDomain: true, 1885 xhrFields: { 1886 withCredentials: true 1887 }, 1888 timeout: CHECKOUT_AJAX_TIMEOUT 1889 }); 1890 } 1891 } 1892 }); 1893 window.PADDLE_INITIALIZED = true; 1894 } else { 1895 paddleInitIntervalRetryCounter++; 1896 if (paddleInitIntervalRetryCounter > 20) { 1897 clearInterval(paddleInitInterval); 1898 } 1899 } 1900 }, 500); 1901 })(); 1902 </script>
1902 1903 1904 1905
1905<script defer> 1906 var CodeMirrorScripts = ["/js/codemirror.min.js?id=a4f41826be06712a32311c57319be313"]; 1907 </script>
1907 1908 1909
1909<script>window.loadContent = true;window.loadCart = true;</script>
1909 1910</body> 1911</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.