首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【集合论】关系性质 ( 对称性 | 对称性示例 | 对称性相关定理 | 反对称性 | 反对称性示例 | 反对称性定理 )

文章目录 一、对称性 二、对称性示例 三、对称性定理 四、反对称性 五、反对称性示例 六、反对称性定理 七、对称性与反对称性示例 一、对称性 ---- 对称性 描述 : R \subseteq A \times..., y 组合 , x 与 y 有关系 R , 但是 y 与 x 没有关系 R , 那么该关系 R 就是非对称的 ; 二、对称性示例 ---- 对称性示例 : 关系图中 ,...\Leftrightarrow G(R) 的任意两个顶点之间如果有边 , 必定是两条边 ( 正向反向各一条 ) 对称性 两个顶点之间 有 0 条或 2 条边 ; 四、反对称性 ---- 反对称性...---- 反对称性 : 顶点之间没有两条边的 , 只有 0 条边 或 1 条边 对称性 : 顶点之间只有 0 条边 , 或 1 条边 上图是反对称的 , 有两个 1 条边 ,...一个 0 条边 ; 上图是非反对称的 , 有 0 条边 , 1 条边 , 2 条边的情况 , 是非反对称的 ; 六、反对称性定理 ---- 反对称性定理 : R 是反对称的 \

68400

Java设计原则—开闭原则(转)

开闭原则(Open Closed Principle)是Java世界里最基础的设计原则,它指导我们如何建立一个稳定的、灵活的系统。 定义: 一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。...开闭原则的含义是说一个软件实体应该通过扩展来实现变化,而不是通过修改已有代码来实现变化。...软件实体包括以下几个部分: 项目或软件产品中按照一定的逻辑规则划分的模块 抽象和类 方法 开闭原则是为软件实体的未来事物而制定的对现行开发设计进行约束的一个原则。...开闭原则的重要性: 开闭原则对测试的影响 开闭原则可是保持原有的测试代码仍然能够正常运行,我们只需要对扩展的代码进行测试就可以了。...开闭原则可以提高可维护性 面向对象开发的要求 如何使用开闭原则: 抽象约束 第一,通过接口或者抽象类约束扩展,对扩展进行边界限定,不允许出现在接口或抽象类中不存在的public方法; 第二,参数类型、引用对象尽量使用接口或者抽象类

22020
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java设计原则--里氏替换原则

    java的核心特性之一:继承,Java中的继承时单继承,子类继承了父类后就可以使用父类的属性和方法(私有属性和方法以外),子类需要重写父类的抽象方法,继承机制在一定程度上提高了代码的复用性,提高了代码的可拓展性...也就是说子类继承了父类就必须拥有父类所有的属性和方法 缺点二:灵活性降低,子类必须拥有父类的属性和方法,让子类多了些约束 缺点三:增强了耦合性,当父类的常量、变量和方法被修改时需要考虑子类的修改 里式替换作用 Java...的单继承机制从总体上看是利大于弊,那么,如何让利的优势发挥最大,同时减少弊的带来的麻烦呢,于是就有了里式替换原则,里氏替换原则为良好的继承定义了一个规范 我们在做系统设计时,经常会定义一个接口或抽象类...,然后编码实现,调用类则直接传入接口或抽象类,其实这里已经使用了里氏替换原则 举一个CS的案例: 枪的主要职责是射击,如何射击在各个具体的子类中定义,手枪是 单发射程比较近,步枪威力大射程远,机枪用于扫射...注意 在类中调用其他类时务必要使用父类或接口,如果不能使 用父类或接口,则说明类的设计已经违背了LSP原则 本文内容参考设计模式之禅,仅用于个人学习,如有不妥请联系删除

    85320

    Java设计原则—接口隔离原则(转)

    接口隔离原则 Interface Segregation Principle 定义: 客户端不应该依赖它不需要的接口 类间的依赖关系应该建立在最小的接口上 我们可以把这两个定义概括为一句话:建立单一接口...含义: 接口要尽量小 这是接口隔离原则的核心定义,不出现臃肿的接口(Fat Interface),但是“小”是有限度的,首先就是不能违反单一职责原则。...根据接口隔离原则拆分接口时,首先必须满足单一职责原则。 接口要高内聚 高内聚就是要提高接口、类、模块的处理能力,减少对外的交互。...具体到接口隔离原则就是,要求在接口中尽量少公布public方法,接口是对外的承诺,承诺地越少对系统开发越有利,变更的风险也就越少,同时也有利于降低成本。

    21620

    Java设计原则—依赖倒置原则(转)

    依赖倒置原则(Dependence Inversion Principle,DIP)的原始定义: 高层模块不应该依赖底层模块,两者都应该依赖其抽象; 抽象不应该依赖细节; 细节应该依赖抽象。...依赖倒置原则Java语言中的表现是: 模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或者抽象类产生的; 接口或抽象类不依赖于实现类; 实现类依赖接口或抽象类。...依赖倒置原则实际上就是要求“面向接口编程”。 采用依赖倒置原则可以减少类间的耦合性,提高系统的稳定性,降低并行开发引起的风险,提高代码的可读性和可维护性。...Driver implements IDriver { public void driver(ICar car) { car.run(); } } 本质: 依赖倒置原则的本质就是通过抽象...规则: 每个类尽量都有接口或抽象类,或者抽象类和接口两者都具备; 变量的表面类型尽量是接口或者抽象类; 任何类都不应该从具体类派生; 尽量不要覆写基类的方法; 结合里氏替换原则使用。

    32020

    SOLID原则Java实战

    本文翻译自国外论坛 medium,原文地址:https://salithachathuranga94.medium.com/solid-principles-in-action-with-java-529d1c2b5f61...SOLID 原则五个单词含义如下:单一职责原则 (SRP) [ S ]开闭原理 (OCP) [ O ]里氏替换原理 (LSP) [ L ]接口隔离原则 (ISP) [ I ]依赖倒置原则 (DIP) [...单一职责原则(SRP)该原则规定每个 Java 类必须执行单一功能。在这里单一功能意味着:类必须执行只属于该类的操作。假设我们有一个名为 BankService 的类。...这就是单一职责原则(SRP)的意义!开闭原则(OCP)该原则规定,当有新需求到来,模块应该对扩展开放,对修改关闭。...这就违反了开闭原则(OCP)!让我们将开闭原则(OCP)应用到这个场景中。

    19750

    Java的先行发生原则

    先行发生原则(Happens-Before)是Java内存模型定义的一个等效判断原则。...依赖这个原则,我们可以通过几条简单规则判断数据是否存在竞争,线程是否安全,而不需要陷入Java内存模型苦涩难懂的定义之中。---“先行发生”原则指的是什么。...下面是Java内存模型下一些“天然的”先行发生关系,这些先行发生关系无须任何同步器协助就已经存在,可以在编码中直接使用。...时间先后顺序与先行发生原则之间基本没有因果关系,所以我们衡量并发安全问题的时候不要受时间顺序的干扰,一切必须以先行发生原则为准。...参考资料《深入理解Java虚拟机》第 12 章:Java 内存模型与线程 12.3 Java 内存模型02 | Java内存模型:看Java如何解决可见性和有序性问题 (geekbang.org)

    28030

    java设计模式原则?懂得原则才能更好进行设计

    比如学习java设计,实际上应该先了解java设计模式原则。 一、单一职责原则 单一职责原则指的就是一个类只能够担任一项职责,这就是所谓的单一职责原则。...三、依赖倒置原则 这一原则java设计模式原则之中也是比较抽象的,它指的是高层模块和底层模块应当依赖抽象,细节也应当依赖抽象,而不应当反过来。...image.png 四、接口隔离原则 这一原则的意思就是某一类对于另外一个类的相应依赖,应当尽可能缩小在最小接口之中,也就是不要有不需要的依赖存在,这样才是一个好的java设计。...六、开闭原则 开闭原则也是java设计模式原则之中的基础原则,也是非常重要的一个原则。它的含义就是对于扩展是应当开放的,但是对于修改是应当关闭的。...以上就是对于java设计模式原则的简单介绍,了解这些原则,才能设计出更加出彩的java

    19110

    JAVA 编程中的SOLID设计原则:SRP,单一职责原则 OCP,开闭原则 LSP,里氏替换原则 ISP,接口隔离原则 DIP,依赖倒置原则

    而一个遵循着好的开发规范以及拥有着良好设计原则的系统,往往可以节约大量的后期维护升级成本。说起设计,往往大家第一反应是设计模式,殊不知,二十几种设计其实都遵循着一些基本的设计原则。...S.O.L.I.D,是事实证明的良好设计原则。...如果不遵循该原则,直接大刀阔斧地修改了某对象的行为,而恰巧该对象被系统的其他部分依赖怎么办?...值得说明的一点是,该原则中的接口并不特指 Java 中的 interface ,而是类似于 API 中的 I一样的泛义的接口,抽象类甚至具体实现类都可能包含在这个概念中。...遵循良好的设计原则,有利于我们平常在开发中写出更可维护的代码,便于团队协作也有利于后来者。道理上讲,设计模式、设计原则等等,也理应成为OOP程序员之间的常用术语,这样一来,才能显得更具专业性。

    9310

    Java内存模型相关原则详解

    本文链接:https://blog.csdn.net/wo541075754/article/details/102932589 在《Java内存模型(JMM)详解》一文中我们已经讲到了Java内存模型的基本结构以及相关操作和规则...而Java内存模型又是围绕着在并发过程中如何处理原子性、可见性以及有序性这三个特征来构建的。本篇文章就带大家了解一下相关概念、原则等内容。 原子性 原子性即一个操作或一系列是不可中断的。...从Java内存模型底层来看有上面的原子性操作,但针对用户来说,也就是我们编写Java的程序,如果需要更大范围的原子性保障,就需要同步关键字——synchronized来保障了。...为此在Java内存模型中,还提供了happens-before原则来辅助保证程序执行的原子性、可见性以及有序性的问题。该原则是判断数据是否存在竞争、线程是否安全的依据。...小结 在这篇文章中介绍了Java内存模型中一些原则,及其衍生出来保证这些原则的方式和方法。也是为我们下面学习volatile这个面试官最爱问的关键字的做好铺垫。

    39120

    java设计模式3,里氏替换原则

    一、里氏替换原则定义 在面向对象的程序设计中,里氏替换原则(Liskov Substitution principle)是对子类型的特别定义。...芭芭拉·利斯科夫与周以真(Jeannette Wing)在1994年发表论文并提出以上的Liskov代换原则。...二、里氏替换原则的作用 里氏替换原则是实现开闭原则的重要方式之一; 解决了继承中重写父类造成的可复用性变差的问题; 是动作正确性的保证,即类的扩展不会给已有的系统引入新的错误,降低了出错的可能性。...此时继承父类实现的敖丙并不满足里氏替换原则,也就是说,此时的子类不能承担原父类的功能,直接给哪吒用,因为称号、师傅、混元珠也都也不一样嘛。...如果使用了继承,就一定要遵从里氏替换原则,否则会让代码出现问题的概率变大。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    66630

    Java并发设计的7条原则

    Java并发设计的7条原则Java并发编程的世界中,高效且安全地管理线程交互是一项至关重要的挑战本文基于Effective Java 并发章节总结的7条原则这些原则旨在帮助开发者规避常见的并发陷阱,确保程序在多线程环境下的正确性和性能表现同步访问共享可变数据在并发中多线程同时访问共享可变的数据是线程不安全的...backgroundThread.start(); TimeUnit.SECONDS.sleep(1); stopRequested = true; }但是这段代码会导致无限循环,因为Java...不要白嫖,一键三连求求拉~)本篇文章被收入专栏 后端的网络基石,感兴趣的同学可以持续关注喔本篇文章笔记以及案例被收入 Gitee-CaiCaiJava、 Github-CaiCaiJava,除此之外还有更多Java

    5821

    Java虚拟机--先行发生原则

    上一篇:Java虚拟机--内存模型 如果Java内存模型中所有有序性都靠volatile和synchronized来完成,那么编写代码会很繁琐,但日常Java开发中并没有感受到这一点,正是因为Java语言的...“先行发生”原则。...这个原则非常重要,它是判断数据是否存在竞争、线程是否安全的主要依据。...依次分析一下先行发生原则中的各个原则:由于两个方法分别在不同的线程中被调用,程序次序原则不适用;没有同步块,自然不会发生lock和unlock操作,管程锁定原则不适用;value变量没有被volatile...修饰,volatile变量原则不适用;后面的线程启动、中断、终止原则也毫无关系;没有一个适用的原则,传递性也不适用。

    50960

    JAVA 设计模式系列(2) —— 设计原则

    Java 设计模式的相关原则 一、单一职责原则 单一职责原则: 应该有且仅有一个原则引起类的变更 单一职责可以简答的理解为,一个类或者对象,承担的只能应该尽可能单一。...里氏替换原则:可以使用父类或接口指针指向子类,这样在一段代码中,父类对象全部替换称为子类对象,对程序也不会产生太多影响。...里氏替换原则可以简单的理解为多使用父类或者接口来指代子类的对象,降低代码的耦合度。...) 三、依赖倒置原则 依赖倒置原则可以简单看做以下三条: 高层模块和低层模块之间不可以直接依赖,而是通过接口或者抽象类来产生依赖 接口或抽象类不依赖于实现类 实现类依赖接口或抽象类 依赖倒置的优点: 减少类之间的耦合...六、开闭原则 开闭原则:软件实体应该对扩展开放,对修改关闭

    30010
    领券