微信扫一扫打赏支持

随笔分类 -  2_设计模式(设计模式原则等)

The problem I have solved in Learning Design Patterns
摘要:php设计模式课程 8、适配器模式是什么 一、总结 一句话总结: 1、编程中的适配器是怎么回事? 2、适配器模式的作用是什么? 3、适配器的操作对象和输出对象是什么? 二、适配器模式是什么 1、代码 阅读全文
posted @ 2019-05-22 18:33 范仁义 阅读(174) 评论(0) 推荐(0)
摘要:php设计模式课程 5、责任链模式是什么 一、总结 一句话总结: 1、选择结构怎么做到面向对象开闭原则? 2、责任链模式怎么实现? 3、php中如何从类的属性值变到方法? 4、从选择结构的责任链模式到继承类的责任链模式经历了什么? 5、责任链模式中,最开始发现事情的是哪一级? 6、责任链模式中,每个 阅读全文
posted @ 2019-05-22 18:33 范仁义 阅读(258) 评论(0) 推荐(0)
摘要:php设计模式课程 4、观察者模式的好处是什么 一、总结 一句话总结: 1、为什么有观察者模式? 2、观察者模式如何实现(或者叫通知者模式更加合适)? 二、观察者模式的好处是什么 1、截图 2、代码 没加监听者模式的选择后改变的代码 1 <!DOCTYPE html> 2 <html lang="e 阅读全文
posted @ 2019-05-22 18:32 范仁义 阅读(587) 评论(0) 推荐(0)
摘要:php设计模式课程 3、为什么会有抽象工厂方法 一、总结 一句话总结: 1、什么是面向对象编程中的开闭原则? 2、抽象工厂方法如何实现? 3、抽象工厂方法和简单工厂方法实现解决不同种情况的区别是什么? 二、为什么会有抽象工厂方法 1、相关知识 2、代码 阅读全文
posted @ 2019-05-14 18:24 范仁义 阅读(423) 评论(0) 推荐(0)
摘要:php设计模式课程 2、为什么会用到简单工厂设计模式 一、总结 一句话总结: 1、简单工厂设计模式的实质是什么? 就是代码哪里改变,有变化的位置应该位于一处 2、什么情况下用工厂模式? 3、工厂模式,工厂返回的是什么? 二、为什么会用到简单工厂设计模式 1、相关知识 2、代码 阅读全文
posted @ 2019-05-14 17:10 范仁义 阅读(228) 评论(0) 推荐(0)
摘要:php设计模式课程 1、什么是设计模式 一、总结 一句话总结:经典场景的经典解决方法。 1、设计模式使用的通俗场景有哪些? 比如:拍电影时,常用设计模式 2、为什么出现设计模式? 3、为什么java中的设计模式比php中的多? 所以php中的设计模式不能照搬java中的二十几个设计模式,不然会出错 阅读全文
posted @ 2019-05-14 17:07 范仁义 阅读(237) 评论(0) 推荐(0)
摘要:面向对象编程的六大原则是什么 一、总结 一句话总结:单一职责:里氏替换原则:依赖倒置:接口隔离:迪米特法则:开闭原则: 单一职责: 不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责(一项职责不是说的一个功能,一项职责可以有多个功能,比如老师这个职责就可以教书和讲课)。 里氏替换原则 阅读全文
posted @ 2019-05-07 10:03 范仁义 阅读(833) 评论(0) 推荐(0)
摘要:php设计模式之桥接模式 一、概述 桥接模式:将两个原本不相关的类结合在一起,然后利用两个类中的方法和属性,输出一份新的结果。 其实就是讲不相关的东西通过类(本例中是SendInfo)结合在一起,从而形成多种可能,其实就是将继承关系转化为组合关系 二、案例 1、模拟毛笔(转) 需求:现在需要准备三种 阅读全文
posted @ 2018-03-26 23:30 范仁义 阅读(177) 评论(0) 推荐(0)
摘要:php设计模式适配器模式 简介 适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起。 其实就是通过一个转换类,这个转换类里面有一个方法,我们用这个转换方法将原来的接口转换成需要的接口 UML 角色 Target适配目 阅读全文
posted @ 2018-03-26 23:19 范仁义 阅读(340) 评论(0) 推荐(0)
摘要:php设计模式之装饰器模式 介绍 装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 思维导图 实例 有这样一个项目,做一个餐厅订餐系统。起初的代码结构是这样的。前面有很多Beverage的继承类,现在遇到的问题是牛奶的价钱上涨了,那么所有相关的类,我们都要进行 阅读全文
posted @ 2018-03-26 22:46 范仁义 阅读(203) 评论(0) 推荐(0)
摘要:php设计模式之策略模式 介绍 策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 封装:把行为用接口封装起来,我们可以把那些经常变化的部分,从当前的类中单独取出来,用接口进行单独的封装。 互相替换:我们封装好了接口,通过指定不同的接口实现类进行算 阅读全文
posted @ 2018-03-26 18:18 范仁义 阅读(238) 评论(0) 推荐(0)
摘要:php设计模式之责任链模式 实际问题 你的论坛有举报功能,版主能解决粗口方面的举报,警察能解决严重一点的黄赌毒方面的举报,更严重的反政府的举报就需要由国安局来完成。 职场中每个人都有直属的上级,如果到达自己的问题自己能够处理,就自己处理,否则交给上级。这里相当于警察是版主的上级,国安是警察的上级。 阅读全文
posted @ 2018-03-26 17:51 范仁义 阅读(521) 评论(0) 推荐(0)
摘要:php设计模式之单例模式 简介 首先明确一下单例模式:如果希望在系统中某个类的对象只能存在一个,那么单例模式是最好的解决方案。 接下来让我们提炼出单例模式的几个关键点:假如有一个单例类,叫做 Singleton,那么: 1 singletonObj 对象应该可以被系统中的任何对象使用 2 singl 阅读全文
posted @ 2018-03-26 17:34 范仁义 阅读(208) 评论(0) 推荐(0)
摘要:php设计模式之工厂方法模式 工厂方法模式 工厂方法模式(Factory Method Pattern)又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创建型模式。在工厂方法模式中,工厂父类负责定义创建产 阅读全文
posted @ 2018-03-26 17:27 范仁义 阅读(166) 评论(0) 推荐(0)
摘要:php设计模式之抽象工厂模式 【概要】创建型模式抽象工厂模式提供一个创建一系统相关或相互依赖对象的接口,而无需指定它们具体的类【GOF95】【特点】抽象工厂模式(Abstact Factory)是一种常见的软件设计模式。该模式为一个产品族提供了统一的创建接口。当需要这个产品族的某一系列的时候,可以为 阅读全文
posted @ 2018-03-26 17:18 范仁义 阅读(657) 评论(0) 推荐(0)
摘要:php 设计模式之工厂模式 简介: 在开发大型系统过程中,往往会出现这样一种情况: 我有一部分基础数据,是类classA是从数据库A读取出来的,其他很多的功能都是基于这个基础数据来操作的。现在呢,我想把数据从数据库A变成从另外的数据源去获取,这时候,要修改起来就比较麻烦,要修改其他很多类的代码。这种 阅读全文
posted @ 2018-03-26 16:48 范仁义 阅读(466) 评论(0) 推荐(0)
摘要:php 设计模式之观察者模式 实例 没用设计模式的代码,这样的代码要是把最上面那部分也要符合要求加进来,就要修改代码,不符合宁增不改的原则 介绍 观察者模式定义对象的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新! 所有的观察者(observer)全部被注册(reg 阅读全文
posted @ 2018-03-26 16:20 范仁义 阅读(875) 评论(0) 推荐(0)
摘要:设计模式四--建造者模式 一、定义 将一个复杂对象呢的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 二、优点 封装性 建造者独立,容易扩展 三、原理图 Product代表具体的产品 ConcreteBuilder是这些产品建造过程的一个接口 Builder是这些产品的具体建造实例,实现 阅读全文
posted @ 2017-05-23 21:25 范仁义 阅读(360) 评论(0) 推荐(0)
摘要:设计模式三—抽象工厂模式 一、定义 抽象工厂模式是工厂方法模式的进一步抽象。如果产品簇中只有一种产品,则退化为工厂方法模式。 二、原理图 三、代码实例 * 苹果和土豆是园丁1的杰作 * 葡萄和西红柿是园丁2的杰作 1、Fruit.java 2、Apple.java 3、Grape.java 4、Ve 阅读全文
posted @ 2017-05-23 09:38 范仁义 阅读(352) 评论(0) 推荐(0)
摘要:设计模式二—工厂方法模式 一、工厂方法模式优点 良好的封装性 优秀的可扩展性 屏蔽产品类 典型的解耦架构 二、实例 三、实例代码 1、Fruit.java public interface Fruit { /* * 生长 * 收获 * 栽种 */ public void grow(); public 阅读全文
posted @ 2017-05-23 08:42 范仁义 阅读(371) 评论(0) 推荐(0)