class A {
void save(Material m) {
m.save();
}
void delete(Material m) {
m.delete();
}
}
interface Material {
void save();
void delete();
}
class MaterialNumberOne implements Material {
void save() {
//делаем что нужно для первого материала
}
void delete() {
//делаем что нужно для первого материала
}
}
class MaterialNumberTwo implements Material {
void save() {
//делаем что нужно для второго материала
}
void delete() {
//делаем что нужно для второго материала
}
}
// юзаем так
public static void main(String[] args) {
Material m1 = new MaterialNumberOne();
Material m2 = new MaterialNumberTwo();
A a = new A();
a.save(m1);
a.delete(m1);
a.save(m2);
a.delete(m2);
}
class MaterialFactory
{
public static function build($type)
{
// тут генерим путь до класса на основе его типа
return new $className();
}
}
class Material
{
public function save()
{
// тут свои действия
}
}
class SuperMaterial
{
public function save()
{
// тут другие действия
}
}
public function save($one,$type){
$obj = MaterialFactory::build($type);
$obj->save();
}
//установка языка
I18n::$lang = 'ru-ru' //к примеру
//где нужен перевод пишете, например
__('hello :username', array(':username' => $username));
<?php
return array(
'hello :username' => 'Привет, :username!',
);