摘要:
简单工厂模式是将业务逻辑包含在一个类中,使用的时候直接调用接口,传一个参数进去,然后获得对应的对象,但是当要创建的产品对象的种类发生改变(增加或者减少),都要通过修改工厂类,这就不符合开闭原则(对修改关闭,对扩展开放)了。 工厂模式与简单工厂模式的去别就在于,如果要创建的产品对象的种类发生改变,我们 阅读全文
摘要:
适配器模式只是将某个对象的接口适配为另外一个对象所期望的接口,当要完成一个操作时,使用接口的对象不用关心借口内部是则么实现的,总之,适配器会根据实际情况去达到目的。这个讲着有点绕,还是举个例子吧。 举个例子:下面这个图片,很完美的诠释了适配器模式,其中那个充电器的学术名叫“适配器”,为什么叫适配器呢 阅读全文
摘要:
策略模式:帮助构建的对象不必自身包含逻辑,而是能够根据需要利用其他对象中的算法。 举个例子: 我们常用的加密算法有DES(对称加密)和AES(非对称加密),假如现在我们有一个报文Context需要加密,加密的方法不固定,可能使用DES,也可能使用AES,实现这个需求有两种方法。 第一种方法就是在Co 阅读全文
摘要:
观察者模式包含 被观察者(Subject) 和观察者(Observer),一个被观察者可能被多个观察者观察,一旦被观察着发生改变,就会触发相应的机制来通知观察者,告诉观察者 被观察者发生了改变,然后观察者根据被观察者的变化进行下一步动作。 举一个例子: 在一个公司中,老板有个秘书,秘书和老板在总经理 阅读全文
摘要:
责任链模式: 请求方发起请求,接收方接受请求,并解决请求方的问题,如果接收方不能解决问题,则将请求传给下一个接收方(上一级),让下一个接收方来解决问题,以此类推,发起请求方并不关心是谁解决了问题,只关心是否解决了问题。 参考 责任链 | 菜鸟教程 http://www.runoob.com/desi 阅读全文
摘要:
简单工厂模式:提供获取某个类的新实例的一个接口,同时使调用代码避免确定实际实例化基类的步骤 请看下面代码 如果不将Factory中的代码封装一下的话,那么在每次要实例化对象时,都得有那么多行的if..else if ...或者switch/case来判断到底要实例化哪个对象; 如果有一百个页面都要实 阅读全文
摘要:
问题背景 有一种数据结构,叫做散列表,还有一些称之为“字典”(dict)、“映射”(map)、“哈希”(hash)。 这种数据结构有个特点,一般情况下,能在O(1)时间内根据关键字找到要查询的信息(进行一次或者很少次比较),这是因为散列表的底层一般会使用数组实现,利用“散列函数”或者称为“hash函 阅读全文
摘要:
在看廖雪峰的JavaScript教程时,里面有一个题就是利用reduce()将string转换为int,我看评论中贴出的方法,当时觉得挺意外了,以为他只用了一行代码,即下面这行代码 因为JavaScript和PHP都是弱类型语言,同一变量名可以重复赋不同类型的值,然后我再用php试了一下,果然和所想 阅读全文
摘要:
Case 1: 通过getElementById("id")获得是一个DOM元素节点对象; 通过getElementsByTagName("tagName")获得是包含多个DOM元素节点对象的数组; 通过getElementsByClassName("className")获得是包含多个DOM元素节 阅读全文
摘要:
在使用php开发网站的时候,每次测试自己的网站时,通常都是用localhost/dirname/filename.php来访问自己所写的程序 但是有时候我们需要模拟真实的场景,如通过域名访问时,如果你已经租用了服务器,那么你可以直接将代码上传到服务器之后,通过域名访问,但是,这样可能比较麻烦,因为上 阅读全文