Skip to content

Instantly share code, notes, and snippets.

View d4ins's full-sized avatar
🤌
Coding...

Andrii Drozdov d4ins

🤌
Coding...
  • OX
  • Dublin, Ireland
View GitHub Profile
@d4ins
d4ins / Configuration.ts
Created February 3, 2023 05:38
2 ways to implement Abstract Factory Pattern in JavaScript | Classic | Configuration.ts
class Configuration {
calendar: Calendar;
constructor(config: ConfigurationArgs) {
switch (config.os) {
case 'ios':
this.calendar = new AppleCalendar();
break;
case 'chromeos':
this.calendar = new GoogleCalendar();
@d4ins
d4ins / Configuration.js
Created February 3, 2023 05:37
2 ways to implement Abstract Factory Pattern in JavaScript | Classic | Configuration.js
class Configuration {
calendar;
constructor(config) {
switch (config.os) {
case 'ios':
this.calendar = new AppleCalendar();
break;
case 'chromeos':
this.calendar = new GoogleCalendar();
@d4ins
d4ins / Application.js
Created February 3, 2023 05:36
2 ways to implement Abstract Factory Pattern in JavaScript | Classic | Application.js
class Application {
calendar;
constructor(calendar) {
this.calendar = calendar;
}
run() {
this.calendar.createEvent({name: 'Abstract Factory Pattern', date: new Date(), participants: []});
}
@d4ins
d4ins / OutlookCalendar.js
Created February 3, 2023 05:35
2 ways to implement Abstract Factory Pattern in JavaScript | Classic | OutlookCalendar.js
class OutlookCalendar {
createEvent({name, date, participants}) {
MicrosoftAPI.createEvent({title: name, date, users: participants});
}
}
@d4ins
d4ins / AppleCalendar.js
Created February 3, 2023 05:34
2 ways to implement Abstract Factory Pattern in JavaScript | Classic | AppleCalendar.js
class AppleCalendar {
createEvent({name, date, participants}) {
AppleAPI.createEvent({name, date, participants});
}
}
@d4ins
d4ins / GoogleCalendar.js
Created February 3, 2023 05:33
2 ways to implement Abstract Factory Pattern in JavaScript | Classic | GoogleCalendar.js
class GoogleCalendar {
createEvent({name, date, participants}) {
GoogleAPI.createEvent({title: name, date, invitees: participants});
}
}
@d4ins
d4ins / world_boundaries.js
Created January 31, 2023 06:48
Let's code Game Engine with React Native. | core/objects/world_boundaries.js
import {Dimensions} from 'react-native';
import {BaseGroup} from './base_group';
import {Boundaries} from './boundaries';
export class WorldBoundaries extends BaseGroup {
constructor() {
super();
this.objects.push(
@d4ins
d4ins / base_group.js
Created January 31, 2023 06:42
Let's code Game Engine with React Native. | core/objects/base_group.js
import {useLayoutEffect, useState} from 'react';
import {Dimensions, View} from 'react-native';
import {Pointer} from '../../helpers/pointer';
export class BaseGroup extends Pointer {
objects = [];
ref = null;
@d4ins
d4ins / boundaries.js
Last active January 31, 2023 06:36
Let's code Game Engine with React Native. core/objects/boundaries.js (v1.1)
import {Dimensions} from 'react-native';
import {Base} from './base';
export class Boundaries extends Base {
constructor({top, left}) {
super({
physicalAttributes: {
top,
left,
width: Dimensions.get('window').width,
@d4ins
d4ins / Scene.js
Created January 31, 2023 06:03
Let's code Game Engine with React Native. screens/Scene.js (v1.2)
import React, {useLayoutEffect, useRef} from 'react';
import {
Button,
Dimensions,
ImageBackground,
Pressable,
SafeAreaView,
StyleSheet,
View,
} from 'react-native';