摘要:继续分享设计模式的公开课,这是第四篇创建型模式之原型模式设计模式的一般介绍在第一篇文章讲了,不了解的可以先看看。设计模式的第一部分,创建型模式就总结完了。下面还有两部分结构型设计模式和行为型设计模式稍后继续。
继续分享设计模式的公开课,这是第四篇创建型模式之原型模式
设计模式的一般介绍在第一篇文章讲了,不了解的可以先看看。
原型模式:
用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。
应用场景: 类的资源非常多、性能和安全要求,一般和工厂方法结合使用。
school = $school; $this->major = $major; $this->name = $name; } public function printInfo() { printf("%s,%s,%sn", $this->school, $this->major, $this->name); } public function copy() { return clone $this; } } $stu1 = new Student("清华大学", "计算机", "张三"); $stu1->printInfo(); $stu2 = $stu1->copy(); $stu2->name = "李四"; $stu2->printInfo(); ?>
这里可以看到,如果类的成员变量非常多,如果由外部创建多个新对象再一个个赋值,则效率不高代码冗余也容易出错,通过原型拷贝复制自身再进行微小修改就是另一个新对象了。
设计模式的第一部分,创建型模式就总结完了。下面还有两部分结构型设计模式和行为型设计模式稍后继续。
想了解更多,来听公开课吧:http://www.ucai.cn/train?f=17
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/20768.html
摘要:最近开展了三次设计模式的公开课,现在来总结一下设计模式在中的应用,这是第一篇创建型模式之单例模式。不过因为不支持多线程所以不需要考虑这个问题了。 最近开展了三次设计模式的公开课,现在来总结一下设计模式在PHP中的应用,这是第一篇创建型模式之单例模式。 一、设计模式简介 首先我们来认识一下什么是设计模式: 设计模式是一套被反复使用、容易被他人理解的、可靠的代码设计经验的总结。 设计模式不...
摘要:但本质是,简单工厂并未严格遵循设计模式的开闭原则,当需要增加新产品时也需要修改工厂代码。但是工厂方法则严格遵守开闭原则,模式只负责抽象工厂接口,具体工厂交给客户去扩展。 最近开展了三次设计模式的公开课,现在来总结一下设计模式在PHP中的应用,这是第二篇创建型模式之工厂模式。 设计模式的一般介绍在第一篇文章讲了,这里就不重复。 工厂模式 实现:定义一个用于创建对象的接口,让子类决定实...
摘要:继续分享设计模式的公开课,这是第三篇创建型模式之创建者模式设计模式的一般介绍在第一篇文章讲了,不了解的可以先看看。 继续分享设计模式的公开课,这是第三篇创建型模式之创建者模式 设计模式的一般介绍在第一篇文章讲了,不了解的可以先看看。 创建者模式: 在创建者模式中,客户端不再负责对象的创建与组装,而是把这个对象创建的责任交给其具体的创建者类,把组装的责任交给组装类,客户端支付对对象的...
摘要:我们分三篇文章来总结一下设计模式在中的应用,这是第一篇创建型模式。二提炼设计模式的几个原则开闭原则模块应对扩展开放,而对修改关闭。工厂模式实现定义一个用于创建对象的接口,让子类决定实例化哪一个类。设计模式的第一部分,创建型模式就总结完了。 我们分三篇文章来总结一下设计模式在PHP中的应用,这是第一篇创建型模式。一、设计模式简介 首先我们来认识一下什么是设计模式: 设计模式是一套被反复使...
摘要:能够协调调用者和被调用者,能够在一定程度上降低系统的耦合性。特点低耦合性,独立性好,安全性应用客户访问不到或者被访问者希望隐藏自己,所以通过代理来访问自己。 我们接着上面的几种模式继续讲: 4、组合模式 将对象组合成树形结构表示部分-整体的层次结构。 特点:灵活性强 应用:对象的部分-整体的层次结构,模糊组合对象和简单对象处理问题 代码实现 /** 组合模式* *///继承模式clas...
阅读 2469·2021-11-15 11:38
阅读 1913·2021-11-05 09:37
阅读 2217·2021-10-08 10:12
阅读 2753·2019-08-30 15:55
阅读 2085·2019-08-30 15:52
阅读 1205·2019-08-29 13:24
阅读 444·2019-08-26 18:27
阅读 1457·2019-08-26 18:27