<?php
interface interfaceClassAB
{
public function callFunction();
}
class A
{
public function functionClassA()
{
echo "functionClassA";
}
}
class B
{
public function functionClassB()
{
echo "functionClassB";
}
}
class adapterA implements interfaceClassAB
{
public function callFunction()
{
(new A())->functionClassA();
}
}
class adapterB implements interfaceClassAB
{
public function callFunction()
{
(new B())->functionClassB();
}
}
class finalClass
{
public function __construct(int $id)
{
if ($id == 1){
(new adapterA())->callFunction();
}else{
(new adapterB())->callFunction();
}
}
}
new finalClass(1);
echo "</br>";
new finalClass(2);
1) Нет объекта, который принимает интерфейс.
Если классы А и Б - это классы с произвольным набором методов, применить к ним интерфейс мы не можем, т.к. обновление этих классов все затрет. Поэтому интерфейс применить к адаптерам, верно?
2) Последний класс с конструктором бесполезен.
Если убрать последний класс, то как будет определяться какой адаптер вызывать?