Source Code : Strategy Pattern Demo

PHP Is Open Source Programming Language You Can Download and use It, You required xampp server and wamp server . You download From xampp server from https://www.apachefriends.org/download.html. Click Here to download
We provide this code related to title for you to solve your developing problem easily. Libraries which is import in this program you can download from http://php.net/. Click Here or search from google with Libraries Name you get jar file related it and also http://php.net/ is a official site

Strategy Pattern Demo


<?php
abstract class Product {
    private   $count;
    private   $costStrategy;

    function __construct( $count, CostStrategy $strategy ) {
        $this->count = $count;
        $this->costStrategy = $strategy;
    }

    function cost() {
        return $this->costStrategy->cost( $this );
    }

    function chargeType() {
        return $this->costStrategy->chargeType( );
    }

    function getDuration() {
        return $this->count;
    }
}

class ProductOne extends Product {
}

class ProductTwo extends Product {
}

abstract class CostStrategy {
    abstract function cost( Product $lesson );
    abstract function chargeType();
}

class TimedCostStrategy extends CostStrategy {
    function cost( Product $lesson ) {
        return ( $lesson->getDuration() * 5 );
    }
    function chargeType() {
        return "hourly rate";
    }
}

class FixedCostStrategy extends CostStrategy {
    function cost( Product $lesson ) {
        return 30;
    }

    function chargeType() {
        return "fixed rate";
    }
}

$lessons[] = new ProductTwo( 4, new TimedCostStrategy() );
$lessons[] = new ProductOne( 4, new FixedCostStrategy() );

foreach ( $lessons as $lesson ) {
    print "lesson charge {$lesson->cost()}. ";
    print "Charge type: {$lesson->chargeType()}
";
}


?>

           
       

Thank with us