Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Uma dúvida meio que bestinha, mas fico perdido quando alguém fala em classes flexíveis.
Veja um exemplo abaixo
interface DatabaseInterface
{
public function query();
}
class MySql implements DatabaseInterface
{
public function query();
}
class PostGreSql implements DatabaseInterface()
{
public function query();
}
/**/
$database = new MySql();
// ou podemos usar PostGreSql
// $database = new PostGreSql();
$galeriaDAO = new GaleriaDao();
$galeriaDAO->insert( $db );GaleriaDAO por não importa qual tipo de SGDB vai usar?
ou
( MySql | PostGreSql ) pois elas podem está em qualquer classe que tem a interface DatabaseInterface?
ou
Todas elas ( GaleriaDAO, MySql | PostGreSql ) são classes flexíveis?
Sim, quando alguém diz:
diminuimos o acoplamento e dando flexibilidade
No caso do exemplo citado por você quem está permitindo a flexibilidade é a interface, portanto quem depende dela será flexível, pois qualquer um pode implementá-la e seguindo o modelo poderia ser injetado no DAO.
Isso não é uma "classe flexível". Desprenda-se do termo classe, que é o maior perigo de quem quer aprender OO.
Isso é abstração.
>
Isso não é uma "classe flexível". Desprenda-se do termo classe, que é o maior perigo de quem quer aprender OO.
Isso é abstração.
Acho que é polimorfismo, hein?
Isso daí, eu sou mestre em confundir termos.
Flexível?