设计模式2.0
小马的学习笔记
这个作者很懒,什么都没留下…
展开
-
设计模式2.0——软件架构设计的七大原则——依赖倒置原则
依赖倒置原则(Dependence Inversion Principle,DIP)是指设计代码结构时,高层模 块不应该依赖底层模块,二者都应该依赖其抽象。抽象不应该依赖细节;细节应该依赖 抽象。通过依赖倒置,可以减少类与类之间的耦合性,提高系统的稳定性,提高代码的 可读性和可维护性,并能够降低修改程序所造成的风险。接下来我们来看一段代码,还是以课程为例:public class Ma ...原创 2019-06-19 09:50:09 · 290 阅读 · 0 评论 -
设计模式2.0——单例模式——四种常用的单例模式
单例模式的应用场景 单例模式(Singleton Pattern)是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。单例模式是创建型模式。单例模式在现实生活中应用也非常广泛。例如,国家主席、公司 CEO、部门经理等。在 J2EE 标准中,ServletContext、ServletContextConfig 等;在 Spring 框架应用中 ApplicationContext;...原创 2019-06-27 17:55:35 · 266 阅读 · 0 评论 -
设计模式2.0——软件架构设计的七大原则——接口隔离原则
接口隔离原则(Interface Segregation Principle, ISP)是指用多个专门的接口,而不使用单一的总接口,客户端不应该依赖它不需要的接口。这个原则指导我们在设计接口时应当注意以下几点: 1、一个类对一类的依赖应该建立在最小的接口之上。 2、建立单一接口,不要建立庞大臃肿的接口。 3、尽量细化接口,接口中的方法尽量少(不是越少越好,一定要适度)。 接口隔离原则符合我们常说的...原创 2019-06-24 10:16:59 · 257 阅读 · 0 评论 -
设计模式2.0——工厂模式三剑客——抽象工厂模式
抽象工厂模式(Abastract Factory Pattern)是指提供一个创建一系列相关或相互依赖对象的接口,无须指定他们具体的类。客户端(应用层)不依赖于产品类实例如何被创建、实现等细节,强调的是一系列相关的产品对象(属于同一产品族)一起使用创建对象需要大量重复的代码。需要提供一个产品类的库,所有的产品以同样的接口出现,从而使客户端不依赖于具体实现。讲解抽象工厂之前,我们要了解两个概念产品等...原创 2019-06-26 16:13:14 · 329 阅读 · 0 评论 -
设计模式2.0——工厂模式三剑客——工厂方法模式
设计模式2.0-工厂方法模式工厂方法模式(Fatory Method Pattern)是指定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行。在工厂方法模式中用户只需要关心所需产品对应的工厂,无须关心创建细节,而且加入新的产品符合开闭原则。工厂方法模式主要解决产品扩展的问题,在简单工厂中,随着产品链的丰富,如果每个课程的创建逻辑有区别的话,工厂...原创 2019-06-26 16:09:06 · 257 阅读 · 0 评论 -
设计模式2.0——工厂模式三剑客——简单工厂模式
设计模式2.0-工厂模式先来回忆一下设计原则:设计原则 解释 开闭原则 对扩展开放,对修改关闭。 依赖倒置原则 通过抽象使各个类或者模块不相互影响,实现松耦合。 单一职责原则 一个类、接口、方法只做一件事 接口隔离原则 尽量保证接口的纯洁性,客户端不应该依赖不需要的接口。 迪米特法则 又叫最少知道原则,一个类对其所依赖的类知道得越少越...原创 2019-06-26 16:05:34 · 249 阅读 · 0 评论 -
设计模式2.0——软件架构设计的七大原则——开闭原则
开闭原则(Open-Closed Principle, OCP)是指一个软件实体如类、模块和函数应该对 扩展开放,对修改关闭。所谓的开闭,也正是对扩展和修改两个行为的一个原则。强调 的是用抽象构建框架,用实现扩展细节。可以提高软件系统的可复用性及可维护性。开 闭原则,是面向对象设计中最基础的设计原则。它指导我们如何建立稳定灵活的系统, 例如:我们版本更新,我尽可能不修改源代码,但是可以增加新功能。...原创 2019-06-18 18:53:15 · 321 阅读 · 0 评论 -
设计模式2.0——软件架构设计的七大原则——合成复用原则
合成复用原则(Composite/Aggregate Reuse Principle,CARP)是指尽量使用对象组合(has-a)/聚合(contanis-a),而不是继承关系达到软件复用的目的。可以使系统更加灵活,降低类与类之间的耦合度,一个类的变化对其他类造成的影响相对较少。继承我们叫做白箱复用,相当于把所有的实现细节暴露给子类。组合/聚合也称之为黑箱 复用,对类以外的对象是无法获取到实现细节...原创 2019-06-25 17:02:37 · 323 阅读 · 0 评论 -
设计模式2.0——软件架构设计的七大原则——里氏替换原则
里氏替换原则(Liskov Substitution Principle,LSP)是指如果对每一个类型为 T1 的对象 o1,都有类型为 T2 的对象 o2,使得以 T1 定义的所有程序 P 在所有的对象 o1 都替换成o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型。定义看上去还是比较抽象,我们重新理解一下,可以理解为一个软件实体如果适用一个父类的话,那一定是适用于...原创 2019-06-25 16:58:16 · 220 阅读 · 0 评论 -
设计模式2.0——软件架构设计的七大原则——单一职责原则
单一职责(Simple Responsibility Pinciple,SRP)是指不要存在多于一个导致类变更的原因。假设我们有一个 Class 负责两个职责,一旦发生需求变更,修改其中一个职责的逻辑代码,有可能会导致另一个职责的功能发生故障。这样一来,这个 Class 存在两个导致类变更的原因。如何解决这个问题呢?我们就要给两个职责分别用两个 Class 来实现,进行解耦。后期需求变更维护互不影...原创 2019-06-21 14:56:30 · 402 阅读 · 0 评论 -
设计模式2.0——软件架构设计的七大原则——迪米特法则
迪米特原则(Law of Demeter LoD)是指一个对象应该对其他对象保持最少的了解,又叫最少知道原则(Least Knowledge Principle,LKP),尽量降低类与类之间的耦合。迪米特原则主要强调只和朋友交流,不和陌生人说话。出现在成员变量、方法的输入、输出参数中的类都可以称之为成员朋友类,而出现在方法体内部的类不属于朋友类。现在来设计一个权限系统,Boss 需要查看目前发...原创 2019-06-25 10:24:18 · 254 阅读 · 0 评论 -
设计模式2.0-单例模式-破坏单例模式的方法
反射破坏单例大家有没有发现,《设计模式2.0-单例模式-四种常用的单例模式》一文中介绍的单例模式的构造方法除了加上 private 以外,没有做任何处理。如果我们使用反射来调用其构造方法,然后,再调用 getInstance()方法,应该就会两个不同的实例。现在来看一段测试代码,以 LazyInnerClassSingleton 为例:public class LazyInnerClas...原创 2019-07-04 19:19:38 · 262 阅读 · 0 评论