
设计模式
文章平均质量分 71
Xlaoer
这个作者很懒,什么都没留下…
展开
-
创建型设计模式——建造者模式
目录一、简介二、例子:造房子(指挥者和工作者)1.创建所需产品2.创建抽象建造者类3.创建具体工人继承建筑者类4.创建指挥者三、例子:麦当劳(指挥者即工作者)1.创建吃的套餐类2.创建抽象建造者类3.创建具体服务员类继承建造者类4.测试四、优缺点建造者模式的优缺点建造者模式和抽象工厂模式的区别 一、简介 建造者模式提供了一种创建对象最佳的方式 将一个复杂对象构建和表示分离,使得同样构建有不同的表示 大部分情况下,我们要混合使用很多设计模式 二、例子:造房子(指挥者和工作者) 1.创建所需产品原创 2021-04-26 16:31:54 · 408 阅读 · 0 评论 -
创建型设计模式——抽象工厂模式
目录一、简介二、抽象工厂模式1.抽象工厂模式和工厂方法模式的区别2.例子(华为和苹果供应商提供一系列类型的产品)手机产品接口和实现类平板产品接口和实现类抽象工厂接口和实现类消费者根据品牌工厂拿产品运行截图+结构图 一、简介 工厂模式的本质都是将具体产品在应用层的代码隔离 在应用层创建时无需关心创建的细节(如参数等) 二、抽象工厂模式 1.抽象工厂模式和工厂方法模式的区别 抽象工厂模式要解决的问题比较复杂,不但工厂是抽象的,产品是抽象的,而且有多个产品需要创建,因此,这个抽象工厂会对应到多个实际工厂,原创 2021-04-21 23:13:06 · 86 阅读 · 0 评论 -
创建型设计模式——工厂模式
目录一、前言二、简单工厂模式三、工厂方法模式 一、前言 作用:实现创建者和调用者分离 类型: 简单工厂模式:用来生产同一等级结构中的任意产品(对于增加新的产品,需覆盖现有代码) 工厂方法模式:用来生产同一等级结构中的固定产品(支持增加任意产品) 抽象工厂模式:围绕一个超级工厂创建其他工厂 工厂模式满足三个设计原则: 开闭原则:对扩展开放,对修改关闭 依赖倒置原则:面向接口编程,不面向实现编程 迪米特法则:只与你直接的朋友交谈,不和陌生人说话 本质: 不直接使用new来实例化对象,用工厂方法封装代替原创 2021-04-21 14:45:20 · 132 阅读 · 1 评论 -
创建型设计模式——单例模式
目录一、前言二、饿汉单例模式三、懒汉单例模式问题:多线程下会创建多个对象解决A:直接加synchronized锁解决B:synchronized锁+DCL(Double Check Lock)指令重排序问题(解决:volatile)解决C:静态内部类反射破坏问题解决:Enum 一、前言 单例设计模式:一个类永远只存在一个对象,不能创建多个对象。 为什么要用单例? 开发中有很多类的对象我们只需要一个,例如虚拟机对象、任务管理器对象;对象越多越占用内存,有些时候只需要一个对象就可以实现业务,单例可以节约原创 2021-04-20 22:28:38 · 516 阅读 · 0 评论 -
OOP七大原则
开闭原则 对扩展开放,对修改关闭 实体允许在不改变其源代码的前提下变更它的行为 里氏替换原则 继承必须确保超类所拥有的性质在子类种仍然成立 子类在继承父类时,不要改变父类原有的方法(功能) 依赖倒置原则 要面向接口编程,不要面向实现编程 依赖倒置原则是实现开闭原则的重要途径之一,它降低了客户与实现模块之间的耦合。 使用接口或者抽象类的目的是制定好规范和契约,而不去涉及任何具体的操作,把细节交给它们的实现类去完成。 单一职责原则 控制类的粒度大小,将对象解耦,提高其内聚性 “原子性” 如果一个原创 2021-04-19 19:36:25 · 101 阅读 · 0 评论 -
设计模式一览
目录一、简介1.什么是设计模式2.设计模式的起源3.学习设计模式的意义二、设计模式的基本要素三、GoF231.创建型模式2.结构型模式3.行为型模式 一、简介 1.什么是设计模式 设计模式(Design Pattern)是软件开发人员在软件开发过程中面临的一般问题的解决方案(套路),用于提高代码可复用性、可维护性、可读性稳健性以及安全性的解决方案。 设计模式的本质是面向对象设计原则的实际运用,是对类的封装性、继承性、多态性以及类的关联关系和组合关系的充分理解 2.设计模式的起源 1995年,GoF(G原创 2021-04-19 19:08:38 · 104 阅读 · 0 评论