标签:des http java 使用 os io 数据 问题
之前对java的设计模式略有了解,但是螃蟹目前是靠PHP吃饭,所以对于进阶学习php设计模式还是很有必要。螃蟹虽然做开发两年了,但是在老鸟眼中还是菜鸟,为了自己写的代码更容易维护和进行团队协作,所以我要搞定设计模式。希望螃蟹今年能创业成功或找个好工作。
1.适配器模式
螃蟹的理解是你买了港行的iphone手机,发现自家的插座和手机自带的插头不配,怎么办呢,就需要一个转换器(适配器)。可能原来系统的类不是你设计的,但是现在你要使用原来的类,发现有问题,但原来的类又不能动,或者不需要动,这样你写一个类继承原来的类,再在新的类中添加想要的东西,再拿去用就可以了。螃蟹还是写一下代码记得牢固一点。
参考项目模块:会员系统
螃蟹之前遇到过某项目的会员系统,原来的会员对象已经定义了,但是新的项目又需要使用原系统的对象,但是新项目又增加了几个属性,这样适配器模式就利用上了,下面代码敲一遍,螃蟹写的代码都是在zend studio里面手打的并且测试过了的
原会员系统会员对象类User.class.php:
<?php
class User{
private $username = null;
private $password = null;
function __construct($user){
$this->username = $user[‘username‘];
$this->password = $user[‘password‘];
}
/**
* @return the $username
*/
public function getUsername() {
return $this->username;
}
/**
* @return the $password
*/
public function getPassword() {
return $this->password;
}
/**
* @param NULL $username
*/
public function setUsername($username) {
$this->username = $username;
}
/**
* @param NULL $password
*/
public function setPassword($password) {
$this->password = $password;
}
}
?>
现在需要增加邮箱和个人简介,那原来的类不能直接改,那就使用适配器吧,创建UserAdapter.class.php
<?php
require(‘User.class.php‘);
class UserAdapter extends User{
private $email = null;
private $description = null;
function __construct($user){
parent::__construct($user);
$this->email = $user[‘email‘];
$this->description = $user[‘description‘];
}
/**
* @return the $email
*/
public function getEmail() {
return $this->email;
}
/**
* @return the $description
*/
public function getDescription() {
return $this->description;
}
/**
* @param NULL $email
*/
public function setEmail($email) {
$this->email = $email;
}
/**
* @param NULL $description
*/
public function setDescription($description) {
$this->description = $description;
}
}
?>
好的,我来测试一下结果:TestAdapter.php
<?php require(‘UserAdapter.class.php‘); //模拟用户数据 $user = array(‘username‘=>‘螃蟹‘,‘password‘=>‘SB123456‘,‘email‘=>‘carol3732@qq.com‘,‘description‘=>‘螃蟹也会思考‘); //实例化适配器对象 $userobj = new UserAdapter($user); //输出结果 echo ‘ Username: ‘.$userobj->getUsername(); echo ‘<br>Password: ‘.$userobj->getPassword(); echo ‘<br>Email: ‘.$userobj->getEmail(); echo ‘<br>Description: ‘.$userobj->getDescription(); //改变密码和Email $userobj->setPassword(‘ok456789‘); $userobj->setEmail(‘312493732@qq.com‘); //输出改变后的结果 echo ‘<br><br>Password: ‘.$userobj->getPassword(); echo ‘<br>Email: ‘.$userobj->getEmail(); ?>
测试结果:
Username: 螃蟹 Password: SB123456 Email: carol3732@qq.com Description: 螃蟹也会思考 Password: ok456789 Email: 312493732@qq.com
螃蟹觉得看起来高深的设计模式也还好懂,今天就到这里了,明天再学习新的设计模式了,继续单身的横着睡了。
螃蟹学PHP设计模式之适配器模式,布布扣,bubuko.com
标签:des http java 使用 os io 数据 问题
原文地址:http://my.oschina.net/u/926989/blog/297464