Skip to content

Instantly share code, notes, and snippets.

View SamStone92's full-sized avatar

Sam Stone SamStone92

  • Gloucester, UK
View GitHub Profile
class Subject{
private var observerArray = [Observer]()
private var _number = Int()
var number : Int {
set {
_number = newValue
notify()
}
get {
protocol Observer{
var id : Int{ get }
func update()
}
let goodGuy = GoodGuy()
let badGuy = BadGuy()
goodGuy.setState(cs: WalkingState())
goodGuy.setState(cs: StandingState())
goodGuy.setState(cs: RunningState())
badGuy.setState(cs: WalkingState())
badGuy.setState(cs: StandingState())
badGuy.setState(cs: RunningState())
class BadGuy{
private var characterState : CharacterState?
func setState(cs : CharacterState){
self.characterState = cs
characterState!.enterState()
}
}
let goodGuy = GoodGuy()
goodGuy.setState(cs: WalkingState())
goodGuy.setState(cs: StandingState())
goodGuy.setState(cs: RunningState())
class RunningState : CharacterState{
func enterState() {
print("Entering running state")
}
}
protocol CharacterState{
func enterState()
}
class GoodGuy{
private var characterState : CharacterState?
func setState(cs : CharacterState){
self.characterState = cs
characterState!.enterState()
}
}