sharkzt / fibonacci
Fibonacci php classes implementation as singleton, strategy and adapter design patterns
1.2.1
2017-06-26 19:51 UTC
Requires
- php: >=7.0.0
This package is not auto-updated.
Last update: 2025-02-01 21:52:05 UTC
README
Fibonacci php classes implementation as singleton, strategy and adapter design patterns
Installation
The recommended way to install bundle is through Composer:
$ composer require sharkzt/fibonacci
Usage Examples
Singleton
//get fibonacci series via class with recursion approach $fibonacciWithRecursion = new \Sharkzt\Fibonacci\Singleton\Fibonacci(11); return $fibonacciWithRecursion->getSeries(); //get fibonacci series via class with iteration approach $fibonacciWithIteration = new \Sharkzt\Fibonacci\Singleton\FibonacciIterator(11); $fibonacciWithIteration->initialize(); return $fibonacciWithIteration->getSeries();
Code above will return [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55].
Adapter
//get fibonacci series via iterator adapter $fibonacciIteratorAdapter = new FibonacciIteratorAdapter(new FibonacciIterator()); $fibonacciIteratorAdapter ->setCount(11) ->initialize(); return $fibonacciIteratorAdapter->getSeries(); //get fibonacci series via recursion adapter $fibonacciIteratorAdapter = new FibonacciRecursionAdapter(new Fibonacci()); $fibonacciIteratorAdapter ->setCount(11) ->initialize(); return $fibonacciIteratorAdapter->getSeries();
This will return [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55].
Strategy
//get fibonacci series with iteration strategy $fibonacciStrategy = new FibonacciStrategy(new Fibonacci(), new FibonacciIterator()); $fibonacciStrategy->setStrategy($fibonacciStrategy->iterationStrategy); $fibonacciStrategy ->setCount(11) ->initialize(); return $fibonacciStrategy->getSeries(); //get fibonacci series with recursion strategy $fibonacciStrategy = new FibonacciStrategy(new Fibonacci(), new FibonacciIterator()); $fibonacciStrategy->setStrategy($fibonacciStrategy->recursionStrategy); $fibonacciStrategy ->setCount(11) ->initialize(); return $fibonacciStrategy->getSeries();
Result is [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55].
License
Fibonacci classes are released under the MIT License. See the bundled LICENSE file for details.