रणनीति पैटर्न का उपयोग व्यवहार निर्णयों के लिए किया जाता है, जबकि ब्रिज पैटर्न का उपयोग संरचनात्मक निर्णयों के लिए किया जाता है।
Brigde पैटर्न क्रियान्वयन संबंधी विवरण से सार तत्वों separats जबकि रणनीति पैटर्न एल्गोरिदम अधिक विनिमेय बनाने का सवाल है।
यूएमएल में रणनीति पैटर्न
यूएमएल में ब्रिगेड पैटर्न
स्विफ्ट में रणनीति पैटर्न:
protocol PrintStrategy {
func print(_ string: String) -> String
}
class Printer {
let strategy: PrintStrategy
init(strategy: PrintStrategy) {
self.strategy = strategy
}
func print(_ string: String) -> String {
return self.strategy.print(string)
}
}
class UpperCaseStrategy: PrintStrategy {
internal func print(_ string: String) -> String {
return string.uppercased()
}
}
class LowerCaseStrategy: PrintStrategy {
internal func print(_ string: String) -> String {
return string.lowercased()
}
}
var lower = Printer(strategy: LowerCaseStrategy())
lower.print("I love Software Patterns")
var upper = Printer(strategy: UpperCaseStrategy())
upper.print("I love Software Patterns")
स्विफ्ट में ब्रिगेड पैटर्न:
protocol Appliance {
func run()
}
protocol Switch {
let appliance: Appliance {get set}
func turnOn()
}
class RemoteControl: Switch {
var appliance: Appliance
init(appliance: Appliance) {
self.appliance = appliance
}
internal func turnOn() {
appliance.run()
}
}
class TV: Appliance {
internal func run() {
print("TV is ON")
}
}
class Stereo: Appliance {
internal func run() {
print("Stereo is ON")
}
}
var tvRemote = RemoteControl.init(appliance: TV())
tvRemote.turnOn()
var stereoRemote = RemoteControl.init(appliance: Stereo())
stereoRemote.turnOn()