48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								@startuml
							 | 
						||
| 
								 | 
							
								package com.iluwatar.featuretoggle.pattern {
							 | 
						||
| 
								 | 
							
								  interface Service {
							 | 
						||
| 
								 | 
							
								    + getWelcomeMessage(User) : String {abstract}
							 | 
						||
| 
								 | 
							
								    + isEnhanced() : boolean {abstract}
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								package com.iluwatar.featuretoggle.user {
							 | 
						||
| 
								 | 
							
								  class User {
							 | 
						||
| 
								 | 
							
								    - name : String
							 | 
						||
| 
								 | 
							
								    + User(name : String)
							 | 
						||
| 
								 | 
							
								    + toString() : String
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  class UserGroup {
							 | 
						||
| 
								 | 
							
								    - freeGroup : List<User> {static}
							 | 
						||
| 
								 | 
							
								    - paidGroup : List<User> {static}
							 | 
						||
| 
								 | 
							
								    + UserGroup()
							 | 
						||
| 
								 | 
							
								    + addUserToFreeGroup(user : User) {static}
							 | 
						||
| 
								 | 
							
								    + addUserToPaidGroup(user : User) {static}
							 | 
						||
| 
								 | 
							
								    + isPaid(user : User) : boolean {static}
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								package com.iluwatar.featuretoggle.pattern.tieredversion {
							 | 
						||
| 
								 | 
							
								  class TieredFeatureToggleVersion {
							 | 
						||
| 
								 | 
							
								    + TieredFeatureToggleVersion()
							 | 
						||
| 
								 | 
							
								    + getWelcomeMessage(user : User) : String
							 | 
						||
| 
								 | 
							
								    + isEnhanced() : boolean
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								package com.iluwatar.featuretoggle.pattern.propertiesversion {
							 | 
						||
| 
								 | 
							
								  class PropertiesFeatureToggleVersion {
							 | 
						||
| 
								 | 
							
								    - isEnhanced : boolean
							 | 
						||
| 
								 | 
							
								    + PropertiesFeatureToggleVersion(properties : Properties)
							 | 
						||
| 
								 | 
							
								    + getWelcomeMessage(user : User) : String
							 | 
						||
| 
								 | 
							
								    + isEnhanced() : boolean
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								package com.iluwatar.featuretoggle {
							 | 
						||
| 
								 | 
							
								  class App {
							 | 
						||
| 
								 | 
							
								    - LOGGER : Logger {static}
							 | 
						||
| 
								 | 
							
								    + App()
							 | 
						||
| 
								 | 
							
								    + main(args : String[]) {static}
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								UserGroup -->  "-freeGroup" User
							 | 
						||
| 
								 | 
							
								PropertiesFeatureToggleVersion ..|> Service 
							 | 
						||
| 
								 | 
							
								TieredFeatureToggleVersion ..|> Service 
							 | 
						||
| 
								 | 
							
								@enduml
							 |