Jump to content

Método como static


Hercles
 Share

Recommended Posts

um caso simples :

class DBConnect {
 static protected $singleton = null;

 static public singleton() {
   if (self::$singleton == null)
     self::$singleton = new DBConnect();

   return self::$singleton;
 }

 protected function __construct() {
   echo "creating DB connection ...";

   // create db connection
   // ...
 }

 public function doStuff() {
   echo "doing stuff ...";
 }
}

$db = DBConnect::singleton(); // echo : "creating DB connection ..."
$db->doStuff();               // echo : "doing stuff ..."
$db = DBConnect::singleton(); // echo : ""
                             // só uma instância da classe de ligação à base de dados
$db->doStuff();               // echo : "doing stuff ..."

------------

exit : alterado o nível de acesso do método singleton para public ... óbvio ...

Edited by HappyHippyHippo
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

o que é o método static (orientado a objeto)?

um caso simples :

class DBConnect {
 static protected $singleton = null;

 static protected singleton() {
if (self::$singleton == null)
  self::$singleton = new DBConnect();

return self::$singleton;
 }

 protected function __construct() {
echo "creating DB connection ...";

// create db connection
// ...
 }

 public function doStuff() {
echo "doing stuff ...";
 }
}

$db = DBConnect::singleton(); // echo : "creating DB connection ..."
$db->doStuff();			   // echo : "doing stuff ..."
$db = DBConnect::singleton(); // echo : ""
						  // só uma instância da classe de ligação à base de dados
$db->doStuff();			   // echo : "doing stuff ..."

Já viste o que o @hippo disse?

Edited by Devexz

Contador de calorias: caloriaspordia.com

Link to comment
Share on other sites

Parece-me óbvio depois da resposta do Happy que ele não percebeu o conceito...

Hercles, (ou querias dizer Hércules?!), em programação orientada aos objetos tens conceitos fundamentais de Classe, método e instância. Vou ser um pouco radical e dizer que em POO nem deviam existir métodos estáticos; isto para dizer que num contexto estático, não tens acesso ás variaveis e métodos da instância, que são fundamentais em POO. Por exemplo, se fizeres uma aplicação apenas com recurso a classes e métodos estáticos, não estás a tirar total proveito da POO.

Fui claro? 🙂

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.