设计模式
One-Direction
这个作者很懒,什么都没留下…
展开
-
java单例模式之readResolve()
readResolve方法是干啥的? .这个方法跟对象的序列化相关(这样倒是解释了为什么 readResolve方法是private修饰的). ??? 怎么跟对象的序列化相关了?下面我们先简要地回顾下对象的序列化. 一般来说, 一个类实现了 Serializable接口, 我们就可以把它往内存地写再从内存里读出而"组装"成一个跟原来一模一样的对象. 不过当序列化遇到单例时,这里边就有了个问题: 从内存读出而组装的对象破坏了单例的规则. 单例是要求一个JVM中只有一个类对象的, 而现在通过反序列化,一个新转载 2020-07-16 14:53:07 · 379 阅读 · 0 评论 -
IOC和AOP
一、IOC首先:IOC(Inverse of Contro)控制反转,有时候也被称为DI依赖注入,它是一种降低对象耦合关系的一种设计思想。1.概念引入:一般而言,在开发中使用分层体系结构,都是上层调用下层的接口,上层依赖下层的执行,这就使得调用者依赖被调用者。所以现在调用者和被调用者之间就错在紧密得联系,假如现在一方要进行变动,那么就会导致程序出现较大得变动,显然这不合适,这样降低了程序得可扩展性。举个例子:现在要给一家卖茶叶的商家做一个管理系统:该商家一开始只卖绿茶,但是现在业务扩展了要开转载 2020-07-09 19:39:36 · 230 阅读 · 0 评论 -
14种常用设计模式
1. 策略模式( Strategy )定义个策略接口,不同的实现类提供不同的具体策略算法, 同时它们之间可以互相替换.IStrategy 接口定义了策略方法,Strategy1 和 Strategy2 通过实现 IStrategy 提供不同的策略,而 User 组合了 IStrategy ,可以通过给 User 对象设置不同具体实现类来让其获得不同的策略2. 简单工厂模式( Simp...转载 2020-05-04 00:37:25 · 514 阅读 · 0 评论 -
面向对象设计原则之合成复用原则
合成复用原则又称为组合/聚合复用原则(Composition/Aggregate Reuse Principle, CARP),其定义如下:合成复用原则(Composite Reuse Principle, CRP):尽量使用对象组合,而不是继承来达到复用的目的。合成复用原则就是在一个新的对象里通过关联关系(包括组合关系和聚合关系)来使用一些已有的对象,使之成为新对象的一部分;新对象通...转载 2020-05-03 00:22:27 · 222 阅读 · 1 评论 -
设计模式—六大原则
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问...转载 2020-05-01 19:08:09 · 182 阅读 · 0 评论 -
UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现
类与类图类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什么样的功能,要承担什么样的义务。一个类可以有多种职责,设计得好的类一般只有一种职责,在定义类的时候,将类的职责分解成为类的属性和操作(即方法)。类的属性即类的数据职责,类的操作即类的行为职责一、依赖关系(...转载 2020-04-29 18:25:18 · 1704 阅读 · 1 评论 -
简单工厂、工厂方法、抽象工厂之小结与区别
简单工厂,工厂方法,抽象工厂都属于设计模式中的创建型模式。其主要功能都是帮助我们把对象的实例化部分抽取了出来,优化了系统的架构,并且增强了系统的扩展性。简单工厂简单工厂模式的工厂类一般是使用静态方法,通过接收的参数的不同来返回不同的对象实例。不修改代码的话,是无法扩展的。工厂方法工厂方法是针对每一种产品提供一个工厂类。通过不同的工厂实例来创建不同的产品实例。在同一等级结构中,支持增加...转载 2020-04-24 21:14:53 · 161 阅读 · 0 评论 -
简单工厂模式和策略模式的区别
简单工厂模式://抽象类abstract class AbsClass{ //抽象方法:提供一系列的算法操作 public abstract void acceptCash(string org);}//继承自抽象类class A:AbsClass{ //具体方法:提供一些列的算法操作 public override double acceptCas...转载 2020-04-24 20:15:55 · 217 阅读 · 0 评论 -
MVC/MVP/MVVM
概述MVC,MVP和MVVM都是常见的软件架构设计模式(Architectural Pattern),它通过分离关注点来改进代码的组织方式。不同于设计模式(Design Pattern),只是为了解决一类问题而总结出的抽象方法,一种架构模式往往使用了多种设计模式。要了解MVC、MVP和MVVM,就要知道它们的相同点和不同点。不同部分是C(Controller)、P(Presenter)、V...转载 2019-08-07 16:00:02 · 223 阅读 · 0 评论 -
图解MVVM双向绑定原理
https://www.jianshu.com/p/04d77c6b64ee首先如果我们要使用双向绑定这个功能,应该如何写代码?仿造Vue:<div id="mvvm-app"> <input type="text" v-model="someStr"> <h1>{{ someStr }}</h1> <h2 v-te...转载 2019-08-13 17:40:51 · 482 阅读 · 0 评论