This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Subject { | |
hidden [System.Collections.ArrayList]$observers | |
Subject() { | |
$this.observers = New-Object System.Collections.ArrayList | |
} | |
Attach([Observer]$o) { $this.observers.Add($o) } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Logger { | |
log($message) { # Define a method called "log" that takes a message as input | |
$message | Out-Host # Output the message to the console | |
} | |
} | |
class TimeStampingLogger : Logger { # Define a class called "TimeStampingLogger" that inherits from "Logger" | |
$logger # Declare a variable called "logger" | |
TimeStampingLogger($logger) { # Define a constructor that takes a "logger" as input |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Command { | |
execute() { | |
"[$(get-date)] Logging execute of command [$this]" | Out-Host # Logs the execution of the command | |
} | |
} | |
class Loony : Command { | |
execute() { | |
([Command]$this).execute() # Calls the execute method of the base class (Command) | |
"You're a loony." | Out-Host # Outputs "You're a loony." |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class CPU { | |
freeze() { "$this freezing" | Out-Host } | |
jump($position) { "$this jump to $position" | Out-Host } | |
execute() { "$this execute" | Out-Host } | |
} | |
class Memory { | |
load($position, $data) { | |
"$this load $position $data" | Out-Host |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<# | |
Define an object that encapsulates how a set of objects interact. | |
Mediator promotes loose coupling by keeping objects from referring to each other explicitly, and it lets you vary their interaction independently. | |
#> | |
class ChatMediator { | |
$users | |
ChatMediator() { | |
$this.users = New-Object System.Collections.ArrayList |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Singleton | |
class Product { | |
$Name | |
Product($name) { | |
$this.Name = $name | |
} | |
} |