Skip to content

Instantly share code, notes, and snippets.

View DoRightt's full-sized avatar

Anton Sukhov DoRightt

  • Rovergulf.net
  • The Milky Way
View GitHub Profile
interface State {
insertQuarter(): any;
ejectQuarter(): any;
turnCrank(): any;
dispense(): any;
}
class SoldState implements State {
gumBallMachine: GumBallMachine;
interface Iterator {
next(): Object;
hasNext(): boolean;
}
class DinnerMenuIterator implements Iterator {
items: MenuItem[];
position: number = 0;
constructor(items: MenuItem[]) {
class CaffeineBeverage {
final prepareRecipe(): void {
this.boilWater();
this.brew();
this.pourinCup();
if (this.customerWantsCondiments()) {
this.addCondiments();
}
}
class Amplifier {
tunner: Tunner;
dvdPlayer: DvdPlayer;
cdPlayer: CdPlayer;
constructor(tunner: Tunner, dvd: DvdPlayer, cd: CdPlayer) {
this.tunner = tunner;
this.dvdPlayer = dvd;
this.cdPlayer = cd;
}
interface Duck {
quack(): void;
fly(): void;
}
interface Turkey {
gobble(): void;
fly(): void;
}
interface Command {
execute(): void;
undo(): void;
}
class Light {
room: string;
constructor(room: string) {
this.room = room;
abstract class Beverage {
description: string = "Unknown beverage";
getDescription() {
return this.description;
}
cost(): number {
return 0;
}
interface QuackBehavior {
quack(): void;
}
interface FlyBehavior {
fly(): void;
}
class Quack implements QuackBehavior {
quack(): void {
class Pizza {
bake() {}
prepare() {}
box() {}
cut() {}
}
class CheesePizza extends Pizza {}
class PepperoniPizza extends Pizza {}
abstract class Pizza {
name: string;
dough: Dough;
sauce: Sauce;
veggies: Veggies;
cheese: Cheese;
pepperoni: Pepperoni;
clams: Clams;
toppings: string[] = ["Extra Mozzarella"];