sharkzt/ fibonacci
Fibonacci PHP 类实现,采用单例、策略和适配器设计模式
1.2.1
2017-06-26 19:51 UTC
Requires
- php: >=7.0.0
This package is not auto-updated.
Last update: 2024-09-28 20:03:38 UTC
README
Fibonacci PHP 类实现,采用单例、策略和适配器设计模式
安装
推荐通过Composer安装包
$ composer require sharkzt/fibonacci
使用示例
单例
//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();
上面的代码将返回 [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]。
适配器
//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();
这将返回 [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]。
策略
//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();
结果是 [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]。
许可证
Fibonacci 类以 MIT 许可证发布。有关详细信息,请参阅捆绑的 LICENSE 文件。