【对象】-->分析的结果-->【原型】-->【类】
业务是对象与对象的交互
实体 非实体 更清晰的分析对象间的关系
行为用来描述原型 属性对应特征
接口是对一类原型或多类原型某一方面方法的规范
实例-对象的的具体,类的实例化的结果
面向对象的3个步骤
OOA--理清逻辑,找出原型 【对象】-->【原型】
OOD--根据原型,解释逻辑 【原型】-->【类】
OOP--编程,单元测试
造句法 名词卡片法 判断原型是否需要使用类
1 写日记到笔记本
【原型】笔记本具有【行为】写新日记
【原型】笔记本具有【行为】添加日记
【原型】日记具有【行为】新建日记
2 日记有标题 日记有关键字 日记有分类 -- 【原型】日记具有【特征】标题,关键字,分类
3 关键字数量不定,关键字内容是自定义的 -- 【原型】关键字具有【特征】内容
4 分类名称是自定义的 -- 【原型】分类具有【特征】名称
5 添加分类到笔记本 -- 【原型】笔记本具有【行为】创建分类
6 按标题来查找日记 -- 【原型】笔记本具有【行为】按标题来查找日记
7 按关键字来查找日记 -- 【原型】笔记本具有【行为】按关键字来查找日记
8 按分类来查找日记 -- 【原型】笔记本具有【行为】按分类来查找日记
9 遍历分类下的日记 -- 【原型】分类具有【行为】遍历日记
三层
1 业务逻辑
2 控制层
3 底层数据
单元测试 --测试-- 核心业务
public 外部可见
protected 内部可见
private 仅自己可见,后代无法继承
${ }表示括弧内是一个变量
abstract 抽象类
该类无法实例化 必须继承
该类的方法无法调用 必须在继承类中重载
final 类无法继承 方法无法重载
static 属性唯一的 所有实例均指向同一数据 方法无法在实例的上下文环境中调用
继承--有切仅有一个父类,可以有多个接口
clone()函数
class cat {
CONST BLACKCOLOR="black";
CONST WHITECOLOR="white";
protected $theColor;
public function __construct(){
$this->theColor=self::WHITECOLOR;
}
public function __clone{
$this->theColor=self::BLACKCOLOR;
}
}
先创建副本,再调用__clone 注意常量要大写
设计模式是前人根据实际处理业务的方法而总结的经验,实际业务中对设计模式的依赖更多在于思想,而非生搬硬套。设计模式应该在熟练掌握面向对象编程的思想 通过大量的业务模拟练习进而掌握。
单一模式:
1 存在protected属性 保存实例 2存在protected构造函数 避免new 3 存在public static方法 获取实例
工厂模式: 存在public static方法 创建目标实例
观察者模式:
1 同时存在obServer和subject两种角色
2 obServer存在public方法 订阅subject
3 subject存在public方法 添加obServer
4 subject存在public方法通知obServer
5 obServer存在public方法广播更新subject
========================================
自增长ID 不能随便使用 多主键的时候为了便于管理才使用它