
➤设计模式
设计模式专栏是一个介绍常见设计模式的技术专栏,主要讲解如何使用设计模式来解决软件设计中遇到的各种问题,提高软件的可维护性、可扩展性、可复用性等。
技术蜗牛-阿春
————我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容————
展开
-
设计模式的六种关系与代码之间的对应
强弱关系:依赖<关联<聚合<组合<实现<继承一、依赖VS关联依赖依赖关系的定义为:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。定义比较晦涩难懂,但在java中的表现还是比较直观的:类A当中使用了类B,其中类B是作为类A的方法参数、方法中的局部变量、或者静态方法调用。说明:虚线+箭头可描述为:Uses a依赖是类的六种关系中耦合最小的一种关系。因为在生成代码的时候,这两个原创 2020-11-23 00:41:06 · 1365 阅读 · 23 评论 -
软件设计五大原则的初认识
每天都在写代码,可是我们真的思考代码中的这些设计原则吗?下面我就一些常用的设计原则,做个分享:1. 开闭原则软件实体如:class对修改关闭,对拓展开放。抽象构建框架,实现拓展细节。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简单来说:就是为了使程序的扩展性好,易于维护和升级。2. 依赖倒置原则上层模块不应该依赖底层模块,它们都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。举例:三层架构service(高层) -> dao(低层)servic原创 2020-08-04 21:35:21 · 591 阅读 · 8 评论 -
【设计模式】——通俗易懂的工厂姐妹花儿(简单工厂、 抽象工厂 、工厂方法)
目录 创建型模式概述一、创建型设计模式:二、主导思想是:三、我的理解是:工厂三兄弟概述一、工厂三兄弟:二、理解工厂三兄弟前奏三、 产品等级结构和产品族的区分如图:抽象工厂模式一、抽象工厂模式二、解析三、优点:四、缺点:工厂方法一、工厂方法二、解析三、优点四、缺点简单工厂模式一、简单工厂二、解析三、优点四...原创 2018-12-27 14:50:06 · 500 阅读 · 19 评论 -
设计模式(创建型模式)——建造者模式
目录 建造者模式概述优点缺点实例:KFC套餐具体代码展示建造者模式概述1、建造者模式:又称生成器模式,指将一个复杂的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。2、建造者模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不...原创 2018-12-28 11:37:04 · 495 阅读 · 21 评论 -
设计模式(创建型模式)——原型模式
目录 原型模式概述原型模式详解原型模式优点原型模式缺点原型模式实例原型模式概述1、原型模式:指用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式允许一个对象再创建另外一个可定制的对象,无需知道任何创建细节。 2、工作原理:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝原型自己来实现创建过程。 ...原创 2019-01-01 14:21:01 · 471 阅读 · 24 评论 -
单一职责原则
定义单一职责原则(SRP)又称单一功能原则,面向对象五个基本原则(SOLID)之一。它规定一个类应该只有一个发生变化的原因。所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。一个类,只有一个引起它变化的原因。应该只有一个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职...原创 2019-02-15 19:06:47 · 331 阅读 · 27 评论 -
访问者模式
结构图原创 2019-05-19 21:13:40 · 229 阅读 · 15 评论 -
C#观察者模式
一、观察者模式的意图观察者模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。二、结构图1、Subject(目标)知道他的观察者,可以有任意多个观察者观察同一个目标;提供注册和删除观察者对象的接口;2、Observer(观察者)为那些在目标发生改变时需要获得通知的对象定义一个更新接口;3、ConcreteSubject(...原创 2019-05-12 21:22:39 · 302 阅读 · 9 评论 -
策略模式
定义策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。组成—抽象策略角色: 策略类,通常由一个接口或者抽象类实现。—具体策略角色:包装了相关的算法和行为。—环境角色:持有一个策略类的引用,最终给客户端调用。结构图...原创 2019-06-09 21:31:26 · 211 阅读 · 19 评论