Skip to content

Instantly share code, notes, and snippets.

@andrewborisov
Created August 5, 2020 01:33
Show Gist options
  • Save andrewborisov/f3bfa1a5c2bc41a484e8df8cd9d7b523 to your computer and use it in GitHub Desktop.
Save andrewborisov/f3bfa1a5c2bc41a484e8df8cd9d7b523 to your computer and use it in GitHub Desktop.
Гист для статьи "Еще раз о паттернах проектирования в Javascript es6 (часть 2)"
class OldDateConverter {
convertToUSAFormat(dateObject) {
const [y, m, d] = dateObject.toISOString().substr(0, 10).split('-');
return [m, d, y].join('-');
}
convertToRussianFormat(dateObject) {
const [y, m, d] = dateObject.toISOString().substr(0, 10).split('-');
return [d, m, y].join('-');
}
}
class NewDateConverter {
convert(dateObject, format) {
const [y, m, d] = dateObject.toISOString().substr(0, 10).split('-');
const parser = {
'mm-dd-yyyy': () => `${m}-${d}-${y}`,
'dd-mm-yyyy': () => `${d}-${m}-${y}`,
};
return parser[format]();
}
}
class DateAdapter {
constructor() {
this.dateConverter = new NewDateConverter();
}
convertToUSAFormat(dateObject) {
return this.dateConverter.convert(dateObject, 'mm-dd-yyyy');
}
convertToRussianFormat(dateObject) {
return this.dateConverter.convert(dateObject, 'dd-mm-yyyy');
}
}
const testing = () => {
const oldDateConverter = new OldDateConverter();
const newDateConverter = new NewDateConverter();
const dateAdapter = new DateAdapter();
const dateToUSAOld = oldDateConverter.convertToUSAFormat(new Date());
const dateToRussianOld = oldDateConverter.convertToRussianFormat(new Date());
const dateToUSANew = newDateConverter.convert(new Date(), 'mm-dd-yyyy');
const dateToRussianNew = newDateConverter.convert(new Date(), 'dd-mm-yyyy');
const dateAdapterToUSA = dateAdapter.convertToUSAFormat(new Date());
const dateAdapterToRussian = dateAdapter.convertToRussianFormat(new Date());
console.log('Американский формат, старый конвертер:', dateToUSAOld);
console.log('Американский формат, новый конвертер:', dateToUSANew);
console.log('Американский формат, адаптер:', dateAdapterToUSA);
console.log('Русский формат, старый конвертер:', dateToRussianOld);
console.log('Русский формат, новый конвертер:', dateToRussianNew);
console.log('Русский формат, адаптер:', dateAdapterToRussian);
};
testing();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment