Ec (2); php tutorial design mode builder mode and Adapter (Adapter mode) Adapter mode ** convert an interface of a class to another interface that the customer wants, classes that are originally incompatible and cannot work together can work together in the builder mode ** to separate the construction of a complex object from its representation, using the same build process, you can create different representations & lt ;? Php *** adapter mode ** converts an interface of a class to another script ec (2) that the customer wants. script
Php tutorial design mode builder mode and Adapter (Adapter Mode)
Adapter Mode
*
* Convert an interface of a class to another interface that the customer wants. classes that are originally incompatible and cannot work together can work together.
Builder Mode
*
* Separates the construction of a complex object from its representation. Different representations can be created using the same construction process.
/**
* Adapter Mode
*
* Convert an interface of a class to another interface that the customer wants. classes that are originally incompatible and cannot work together can work together.
*/
// This is the original type
Class OldCache
{
Public function _ construct ()
{
Echo "OldCache construct
";
}
Public function store ($ key, $ value)
{
Echo "OldCache store
";
}
Public function remove ($ key)
{
Echo "OldCache remove
";
}
Public function fetch ($ key)
{
Echo "OldCache fetch
";
}
}
Interface Cacheable
{
Public function set ($ key, $ value );
Public function get ($ key );
Public function del ($ key );
}
Class OldCacheAdapter implements Cacheable
{
Private $ _ cache = null;
Public function _ construct ()
{
$ This-> _ cache = new OldCache ();
}
Public function set ($ key, $ value)
{
Return $ this-> _ cache-> store ($ key, $ value );
}
Public function get ($ key)
{
Return $ this-> _ cache-> fetch ($ key );
}
Public function del ($ key)
{
Return $ this-> _ cache-> remove ($ key );
}
}
$ ObjCache = new OldCacheAdapter ();
$ ObjCache-> set ("test", 1 );
$ ObjCache-> get ("test ");
$ ObjCache-> del ("test", 1 );
Php design pattern Builder Pattern)
/**
* Builder Mode
*
* Separates the construction of a complex object from its representation. Different representations can be created using the same construction process.
*/
Class Product
{
Public $ _ type = null;
Public $ _ size = null;
Public $ _ color = null;
Public function setType ($ type)
{
Echo "set product type
";
$ This-> _ type = $ type;
}
Public function setSize ($ size)
{
Echo "set product size
";
$ This-> _ size = $ size;
}
Public function setColor ($ color)
{
Echo "set product color
";
$ This-> _ color = $ color;
}
}
$ Config = array (
"Type" => "shirt ",
"Size" => "xl ",
"Color" => "red ",
);
// The previous bulider processing is not used
$ OProduct = new Product ();
$ OProduct-> setType ($ config ['type']);
$ OProduct-> setSize ($ config ['SIZE']);
$ OProduct-> setColor ($ config ['color']);
// Create a builder class
Class ProductBuilder
{
Var $ _ config = null;
Var $ _ object = null;
Public function ProductBuilder ($ config)
{
$ This-> _ object = new Product ();
$ This-> _ config = $ config;
}
Public function build ()
{
Echo "--- in builder ---
";
$ This-> _ object-> setType ($ this-> _ config ['type']);
$ This-> _ object-> setSize ($ this-> _ config ['SIZE']);
$ This-> _ object-> setColor ($ this-> _ config ['color']);
}
Public function getProduct ()
{
Return $ this-> _ object;
}
}
$ ObjBuilder = new ProductBuilder ($ config );
$ ObjBuilder-> build ();
$ ObjProduct = $ objBuilder-> getProduct ();