php设计模式之面向对象基础知识
[*] 什么是类
类是产生对象的工厂,它由属性和方法组成。属性代表对象的状态,方法代表对象的操作行为
[*] 什么是对象
对象是由类产生,拥有该类定义的所以属性与方法。
[*] 类与类(对象与对象)之间的关系(以电商为场景)
1. 单向关联
对象A知道对象B,但对象B不知道对象A 如: 订单含有商品,但商品不包含订单
http://s1.运维网.com/wyfs02/M01/8C/75/wKioL1htrUqiCBKHAABbeiYxucE216.png-wh_500x0-wm_3-wmp_4-s_2828482012.png
/**
* 商品
* Class Goods
*/
class Goods{
private $_name = null;
private $_price = 0;
public function __construct($name,$price) {
$this->_name = $name;
$this->_price = $price;
}
/**
* @return null
*/
public function getName() {
return $this->_name;
}
/**
* @return int
*/
public function getPrice() {
return $this->_price;
}
}
/**
* 订单
* Class Order
*/
class Order{
private $_goods = [];
public function addGoods(Goods $goods){
$this->_goods[] = $goods;
}
} 2. 双向关联
对象A知道对象B,对象B也知道对象A,两个对象之间可以相互调用方法与属性。如:订单与客户之间的关系
http://s4.运维网.com/wyfs02/M01/8C/76/wKioL1hturjiTVJJAABdLpb6qHs058.png-wh_500x0-wm_3-wmp_4-s_4028390830.png
class Customer{
public $orders=[];
private $_id;
public function __construct($id) {
$this->_id = $id;
}
public function addOrder(Order $order){
$this->orders[] = $order;
}
public function getOrder(){
return $this->orders;
}
}
class Order{
public function getCustomerByOrderId($orderId){
//通过订单号,找到用户id
$id = 23;
returnnew Customer($id);
}
}
页:
[1]