Simplicity is the essence of happiness. - Cedric Bledsoe
这种模式使用一个原型的实例指定创建对象的种类并通过复制这个原型创建新对象 Client(客户端) This class creates a new object by asking a prototype to clone itself. (这个类创建一个新的对象通过访问一个原型来克隆自身。) ConcretePrototype2(具体原型2) This class implements an operation for cloning itself. (这个类实现了一个操作,用于克隆本身。) ConcretePrototype1(具体原型1) This class implements an operation for cloning itself. (这个类实现了一个操作,用于克隆本身。) Prototype(原型) This class declares an interface for cloning itself. (这类声明一个接口用于克隆本身。) 代码实现 <?php...
发布于 5 years ago
26518
这种模式确保一个类只有一个实例并提供一个访问它的全局访问点 Singleton This class (a) defines an Instance operation that lets clients access its unique instance, and (b) may be responsible for creating its own unique instance. (这类(a)定义了一个实例操作,允许客户访问其独特的实例,和(b)可能是负责创建自己唯一的实例。) 代码实现 <?php class Singleton { static private $_instance = null; private function __construct() { } static public function getInstance() { if (is_null(self::$_instance)) { self::$_inst...
发布于 5 years ago
27600
提供一个集中的请求处理机制 -. Front Controller -. 前端控制器 -. Dispatcher -. 调度器 -. 调度请求到相应的具体处理程序 -. View -. 视图 -. 为请求而创建的对象 代码实现 <?php
发布于 5 years ago
25830
代理这种模式提供了一个代理或占位符为另一个对象来控制对它的访问 Proxy(代理) This class (a) maintains a reference that lets the proxy access the real subject, (b) provides an interface identical(完全相同的) to Subject's so that a proxy can be substituted(['sʌbstitju:tid] 代替) for the real subject, and (c) controls access to the real subject and may be responsible for creating and deleting it. (这类(a)维护一个引用,让代理访问真正的主题,(b)给主题提供一个完全相同的接口,让一个代理可以代替真正的主题,和(c)控制访问真正的主题,能够负责创建和删除它。) RealSubject(真对象) This class defines the...
发布于 5 years ago
27620
细粒的有效地这个模式有效地使用共享来支持大量的细粒度对象 Client(客户端) This class (a) maintains a reference to a flyweight, and (b) computes or stores the extrinsic([ek'strinsik] 外在地) state of flyweight(s). (这类(a)维护一个轻量级选手的引用,和(b)计算或存储轻量级选手的外在的状态。) UnsharedConcreteFlyweight(不共享具体享元) Not all Flyweight subclasses need to be shared. The Flyweight interface enables sharing; it doesn't enforce it. (并不是所有的轻量级选手子类需要共享。Flyweight接口允许共享;它不强制它。) ConcreteFlyweight(具体享元) This class implements the Flyweight i...
发布于 5 years ago
27440
封装交互促进松散耦合明确的独立地这种模式定义了一个对象该对象封装了一组对象如何交互中介者使各对象不需要显式地相互引用从而使其耦合松散它允许你独立的改变他们的交互 ConcreteColleague(['kɔli:ɡ] 同事)2 Each colleague class knows its mediator object and communicates(沟通) with its mediator whenever it would have otherwise communicated with another colleague. (每个同事类知道它的中介对象和与每当它本来与另一位同事沟通都通过与中介沟通来传达。) ConcreteColleague(['kɔli:ɡ] 同事)1 Each colleague class knows its mediator object and communicates(沟通) with its mediator whenever it would have otherwise communicated w...
发布于 5 years ago
29743
进行复杂项目开发时,服务端会把接口拆分的比较细,以方便复用。而拆分后的接口在前端进行组合请求时,通常会出现一个区块要请求多个接口请求才能拿到想要的数据,过多的数据请求会导致区块渲染较慢等问题... 解决方案 1.  在服务端再开发一个新的合并接口来为客户端提供数据 缺点: 该接口可复用性低,不易维护 2. 端在请求时对接口动态合并,后端有一个专门处理合并接口的服务接口 注意: 合并接口需要分发多个请求到不同的接口,然后返回数据给客户端,需要调整接口响应效率 示例: 客户端: 接口 api/combine 参数 apis=[{ url:'users/base', body:{ type:2 } },{ url:'users/account', body:{ id:20 } }]...
发布于 8 years ago
1081962
前段时间遇到几道好无聊的面试题,有点类似于脑筋急转弯的感觉。感觉出这几道题的人真是好无聊! 第一题 以下输出结果是什么? $arr = array(0=>1,"aa"=>2, 3, 4); foreach($arr as $key=>$val){ print($key == "aa" ? 5 : $val); } 答案: 5534 分析: 这道题适及到数据类型自动转换, 0 == "aa"结果true。 我的评价: php弱类型语言,不同的操作符和数据类型之前的转换,有时候会匪夷所思。而且规则一堆,今天记住了,过段时间就忘了。 另外在实际应用中,都是使用全等于===,谁那么无聊会用上题中的==来判断???,即使你很清楚知道转换的规则,你能保证100%不出错吗,===这么安全的未什么不用?? 第二题 以下输出结果是什么? $a = 3; $b = 5; if($a = 5 || $b = 7) {...
发布于 9 years ago
653122