Skip to content

Instantly share code, notes, and snippets.

@audinue
Created February 2, 2021 08:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save audinue/00bb25483fbea5ce629d3b83c43d8a42 to your computer and use it in GitHub Desktop.
Save audinue/00bb25483fbea5ce629d3b83c43d8a42 to your computer and use it in GitHub Desktop.
<script>
// Data abstracts storage
let Data = {
_count: 0,
get count () {
return Data._count
},
set count (value) {
Data._count = value
}
}
// Logic abstracts Data
let Logic = {
get count () {
return Data.count
},
increment () {
Data.count++
}
}
// Presentation presents Logic
let Presentation = {
index () {
Presentation.render()
},
increment () {
Logic.increment()
Presentation.render()
},
render () {
document.title = 'Counter'
document.body.innerHTML = `
<button onclick="Presentation.increment()">
Count: ${Logic.count}
</button>
`
}
}
addEventListener('DOMContentLoaded', Presentation.index)
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment