Шаблон стратегия

327
20 апреля 2017, 18:15

Есть такое задание:

Имеется 2 платёжные системы.

Если в корзине набралось товаров на сумму больше или равно 500, то платить надо, кредитной картой.

Если набралось на сумму более 200 и менее 500, то платить с помощью PayPal.

Это правильное решение?

<?php
interface payStrategy{
    public function pay($amount);
}
class payByCC implements payStrategy{
    private $ccNum = '';
    private $ccType = '';
    private $cvvNum = '';
    private $ccExpMoth = '';
    private $ccExpYear = '';
    public function pay($amount = 0){
        echo 'Заплатите ' . $amount . ' с помощью кредитной карты';
    }
}
class payByPayPal implements payStrategy{
    private $payPalEmail = '';
    public function pay($amount = 0){
        echo 'Заплатите ' . $amount . ' с помощью PayPal';
    }
}
class shoppingCart{
    public $amount = 0;
    public function __construct($amount = 0){
        $this->amount = $amount;
    }
    public function payAmount(){
        if($this->amount >=500){
            $payment = new payByCC();
        }
        elseif($this->amount >= 200 && $this->amount < 500){
            $payment = new payByPayPal();
        }
        $payment->pay($this->amount);
    }
}
$cart = new shoppingCart(700);
$cart->payAmount();
echo '<br>';
$cart = new shoppingCart(300);
$cart->payAmount();
READ ALSO
Добавление товара в корзину и удаление

Добавление товара в корзину и удаление

Я сделал добавление товара в корзину и удаление, но если удалять товар, то удаляться будет всегда первый, как сделать, что бы удалить тот, который...

254
Как работать с файлом занятым другим процессом? С++

Как работать с файлом занятым другим процессом? С++

Например я пытаюсь открыть файл и записать в него строку следующим образом

342