本文同步更新於blog
原型模式中会将类别分为两类:
分别是原型介面 (Prototype) 及具体原型类别 (Concrete Prototype)。
透过原型介面,我们可以知道该实例能拷贝 (clone),复制出自己的实例。
其中拷贝又可分为两种:
分别是浅复制 (Shallow Copy) 与深复制 (Deep Copy)。
两者的差别在於,当原型类别的属性为参考类型 (references) 时,
浅复制会指向与实例一样的位址,不会重新创建属性。
深复制则会重新创建属性。
这意味着,当使用浅复制时,
修改参考类型的属性会一并修改到原本实例。
优点:
可以直接拷贝实例,省去创建的麻烦。
也提供了一个不使用继承 (extend) 来面对复杂实例的方式。
缺点:
当架构较为复杂时,深复制可能会不好实作。
[抽象工厂模式]:
抽象工厂模式,透过定义产品族的概念,处理复杂的创建。
原型模式则是想利用拷贝的概念,来处理复杂的创建。
[单例模式]:
单例模式保证同一时间存在一个实例。
原型模式则是复制出一个实例。
ʕ •ᴥ•ʔ:在PHP中,由於有魔术方法__clone()的存在,
我们可以不定义原型介面,直接使用clone()。
<<: 拿 ml5 来练习 如何载入别人的情绪给自己的电脑 (四)
#DDoS防护系统测试 徵求大中小企业有被DDoS攻击的经验,传统FW防护已没法应付的情境。 On-...
NAT 网路位址转换(英语:Network Address Translation,缩写:NAT)是...
原型 Prototype 与 原型链 Prototype Chain JavaScript 每一个物...
DFS是简写,全名是Depth-First-Search(深度优先搜寻演算法) DFS是一种搜寻的算...
接续昨天的练习:https://ithelp.ithome.com.tw/articles/1026...