Module Design Pattern 1

Illustration of the module design pattern.

by nevkatz

HTML

<div id="output">

</div>

JavaScript

// the module
var fruitBasket = (function() {
      let apples = 0;
      let oranges = 0;
      
      return {
       //apples 
       get_apples:function() { 
           return apples;
       },
       set_apples:function(num) { 
           apples = num;
       },
       increment_apples:function() { 
           apples++;
       },
       // oranges
       get_oranges:function() { 
           return oranges;
       },
       set_oranges:function(num) { 
           oranges = num;
       },
       increment_oranges:function() { 
           oranges++;
       }  
      }
})();

// the tests

// apples code
fruitBasket.set_apples(5);
fruitBasket.increment_apples();
let my_apples = fruitBasket.get_apples();
console.log(my_apples);
// expected output: 6

// oranges code
fruitBasket.set_oranges(41);
fruitBasket.increment_oranges();
let my_oranges = fruitBasket.get_oranges();
console.log(my_oranges);
// Expected output: 42

// additional output code for convenience
let txt = `apples: ${my_apples} oranges: ${my_oranges}`;

let output = document.getElementById('output');

output.textContent = txt;