qq_慕斯卡6187973
2021-08-05
qq_慕斯卡6187973
2021-08-05
慕粉1745368135
2021-05-19
一女一心
2021-02-19
想讲的老师讲不明白,能讲明白的老师不想来讲。网上讲设计模式课的很少。有的只是边学边录的视频,灵活运用的少。这东西了解思想后必须多练才行,这玩意儿没得几年的功夫搞不明白,对于我来说是这样。
weixin_慕姐0507771
2020-12-22
命名空间有问题吧,贴全代码
慕粉15810389973
2020-09-10
这个要配合路由才能实现
萧俊介
2020-07-31
qq_第二天堂_0
2020-06-25
原型是克隆,单例是静态。。。克隆相当于双胞胎两个可以同时做不同的事。静态其实是一个人不能同时做两件事
xingkong8
2020-05-25
不是抽象类,你怎么实现多态呢,你想想~
奋斗de小蜗牛
2020-05-14
表字段的话,直接是面向对象编程了,对象是一个类,所有字段都是属性,直接改属性就好。
这个装饰器实际上是功能性逻辑性的装饰,
给你起个昵称
2020-05-10
说明你不懂面向对象的思想。可以多看看这方面的课程哦。面向对象的核心思想到底是什么?其实用大白话说就是【代码复用】以及【行为约定】,少些代码。举个最简单的例子,数据库的3种操作,mysql,mysqli以及pdo,它们都可以操作数据库,但是它们的操作方法又不一样,这时候如果我想在我的网站系统里同时加入这3种数据库操作并可以随意选择,而且使用它的人只需要知道一种统一的操作方法怎么办?没错,这时候你就要用接口来开发了。首先你定义一个接口比如叫Db,Db里有3个方法connect,query,close,然后你写3个类mysql,mysqli,pdo都实现这个接口的3个方法(可能数据库的连接不叫connect方法,但是你实现连接的方法已经封装在connect里了)。这时候外面只需要用Db这个接口,他都只需要调用connect,query,close这三个方法就行,而不用管你mysql,mysqli,pdo里都有什么方法,这也就实现了3种数据库随意切换,但是你代码不用改,因为你调用的只有connect,query,close这三个方法
蟑螂蟑螂
2020-05-06
解决了么?我的也是这样
index.php:

Object文件:

运行结果:不报错,也不会输出

奋斗de小蜗牛
2020-03-31
把代码贴出来看一下 是不是你Loader类的命名空间不对
qq_JESUS_iouBK5
2020-01-09
保存从数据库取得的对象
奋斗de小蜗牛
2019-12-18
只是写了思路并没有去完善代码报错也正常
奋斗de小蜗牛
2019-12-18
这种案例在框架中用的比较多,你可以看下Thinkphp 6 和 Laravel这两种框架,尤其是Laravel把设计模式用到了极致
qq_VIP蔺蛋蛋_0
2019-10-18
注册树模式等同于单例模式+工厂模式吧
慕娘8202583
2019-09-23
redis nosql 都是存在数据库的,虽然是缓存,但是可以保留。 但是这个代码的注册器,程序完全运行结束后,就全部销毁了
php蚂蚁
2019-09-19
报错信息上写的很清楚哪里错了啊
qq_打酱油
2019-09-19
标签<div1><div2></div2></div1> after 反转
qq_打酱油
2019-09-17
我觉得可以理解成正好相反的模式,适配器模式是把多种统一成一种,而策略模式是把一种分解为多种
qq_打酱油
2019-09-16
感觉没有多态喃?
就是用了interface,然后都去implements这个接口
qq_萧玉_0
2019-09-15
users
qq_name猿_0
2019-08-29
nightlostk
2019-08-24
使用枚举,表格驱动的方法优化if...else...代码 粗糙写法如下,代码其实还可以优化
class AdvertisingRoleEnum{
const MALE = 1;
const FEMALE = 0;
public static function getStrategy($gender){
$listExplain[self::MALE] = new \IMooc\MaleUserStrategy();
$listExplain[self::FEMALE] = new \IMooc\FemaleUserStrategy();
return $listExplain[$gender];
}
}
class Page
{
protected $strategy;
function index()
{
echo "AD:";
$this->strategy->showAd();
echo "<br/>";
echo "Category:";
$this->strategy->showCategory();
echo "<br/>";
}
function setStrategy(\IMooc\UserStrategy $strategy){
$this->strategy = $strategy;
}
}
$page = new Page();
$gender = isset($_GET['female'])??0;
$strategy = AdvertisingRoleEnum::getStrategy($gender);
//if (isset($_GET['female'])){
// $strategy = new \IMooc\FemaleUserStrategy();
//}else{
// $strategy = new MaleUserStrategy();
//}
$page->setStrategy($strategy);
$page->index();
nightlostk
2019-08-23

你这儿访问这个类了。
weixin_慕虎2468686
2019-08-13
我想到的是专用于数据库的连接类。
因为数据库是一种资源,如果不用单例模式做数据库连接的类的话,在脚本中任由多次连接这个数据库的话,会造成服务器的压力,因为数据库有最大连接数的概念。单例模式说白了,意思就是保证只能实例化一次数据库连接。无论你在代码中有多少个new 操作。
慕的地3091958
2019-07-25
我的理解:1.适配器模式:主要是几种不同的类做一个统一的类去调用。修改主体后面方法直接通用。
2.策略模式:一组特定的行为或者算法封装成类 以适用某中特需的上下文。
适配器是现有不同的类我们去写一个方法统一调用(现有不同的类或者接口等)。策略是我们实现特需的场景来统一调用(是场景触发了布局)。
qq_流沙_28
2019-06-26
这个要自己配置web服务器和实现路由解析了
water014300
2019-06-25
个人理解,视频里的例子使用工厂模式+注册树模式 等同于 单例模式 的便捷实现;可以使用单例模式,只不过如果有多个数据表的话,需要去为每个数据表写一个'单例',代码比较冗余而且比较麻烦