02 Mar 2023
class Settings {
static instance: Settings;
public readonly mode = "dark";
private constructor() { // a private constructor ensures no one else can create it
...
};
Prototype:
Builder:
Do:
addKetchup() {
this.ketchup = true;
}
Don’t:
constructor(
public ketchup: boolean;
) {};
Factory:
Do:
class ButtonFactory {
createButton(os: string) : IOSButton | AndroidButton {
if (os === 'ios') {
return new IOSButton();
else {
return new AndroidButton();
}
const button = ButtonFactory('ios');
Don’t:
const button = os === 'ios' ?
new IOSButton :
new AndroidButton;