手机版
热门标签
站点地图
我要投稿
广告合作
联系我们
搜 索
广告位招租
广告位招租
切换导航
首页
编程教程
编程导航
编程百科
编程问答
编程博文
编程实例
硬件设备
网络运营
软件教程
移动数码
办公软件
操作系统
人工智能
栏目导航
▸ 编程语言
▸ 前端开发
▸ 移动开发
▸ 开发工具
▸ 程序设计
▸ 行业应用
▸ CMS系统
▸ 服务器
▸ 数据库
公众号推荐
微信公众号搜
"智元新知"
关注
微信扫一扫可直接关注哦!
子栏目导航
算法
设计模式
多媒体技术
正则表达式
Elasticsearch
Flink
Hadoop
IDE
UML
Promise
Gis
编程之家
设计模式
6大设计原则之里氏替换原则
首先说说继承: 继承的优点: 1.代码共享 2.提高代码的重用性 3.子类可以形似父类但又异于父类 4.提高代码的可重用性 5.提高代码的开放性 缺点:1.继承是带有侵入性的 2.降低了代码的灵活性 3.增强了耦合 什么是里氏替换? 简单说就是将父类出现的
作者:编程之家 时间:2020-08-21
聚合
http://www.postgresql.org/docs/9.3/static/functions-aggregate.html array_agg: 聚合函数,返回一个array,相当于oracle的wm_concat: digoal=# select array_agg(fooid) from foo; array_agg ----------------- {4,5,
作者:编程之家 时间:2020-08-21
设计模式六大原则——合成/聚合复用原则(CARP)
1、定义 简而言之,对于合成/聚合复用原则的定义就是:要尽量使用合成和聚合,尽量不要使用继承。 2、释义 为什么“要尽量使用合成和聚合,尽量不要使用继承”呢? 这是因为: 第一,继承复用破坏包装,它把父类的实现细节直接暴露给了子类,这违背了信息隐藏的原则; 第二:如果父类发生了改变,那么子类也要发生相应的改变,这就直接导致了类与
作者:编程之家 时间:2020-08-21
6大设计原则之依赖倒置原则
依赖倒置原则: 包含三层含义: 高层模块不应该依赖低层模块,二者应该依赖抽象 抽象不应该依赖细节 细节应该依赖抽象 再精简些就是:其核心是面向接口编程 抽象:即抽象类和接口,抽象是对实现的约束,对依赖而言也是一种契约 细节:即具体的实现类,实现接口或继承抽象类所产生的类 依赖倒置就是通过抽象使各个类或模块间实现彼此独立,互不影响,实现模块间的松耦合。 依赖的三种实现方式: 构造函数注入 Sette
作者:编程之家 时间:2020-08-21
架构师之路(7)---里氏代换原则
4 里氏代换原则(Liskov Substitution Principle, LSP) 4.1 什么是里氏代换原则 里氏代换原则是由麻省理工学院(MIT)计算机科学实验室的Liskov女士,在1987年的OOPSLA大会上发表的一篇文章《Data Abstraction and Hierarchy》里面提出来的,主要阐述了有关继承的一些原则,也就是什么时候应该使用继承,什么时候不应
作者:编程之家 时间:2020-08-21
函数依赖与模式分解
亚信的三面,曾被问到对数据库范式的理解,记得当时答得真的是一塌糊涂。现在借此机会来重温和复习一下。(简要说明一下,因为字符的关系,在本文里 ∈有时代表”属于“,有时代表”真包含“的意思,不便之处,敬请谅解) 函数依赖 函数依赖是一个从数学理论中派生的术语,它指明属性中的每一个元素(在某些行中),存在唯一一个元素(在同一行中)与之对应。假设关系表 T 中的行(元组)被记为r1,r2….rn,表中的每
作者:编程之家 时间:2020-08-21
DDD领域驱动设计基本理论知识总结
转载地址:http://www.cnblogs.com/netfocus/archive/2011/10/10/2204949.html 领域驱动设计之领域模型 为什么建立一个领域模型是重要的 领域通用语言(UBIQUITOUS LANGUAGE) 将领域模型转换为代码实现的最佳实践 领域建模时思考问题的角度 领域驱动设计的经典分层架构 用户界面/展现层 应用层 领域层 基础设施层 领域驱动设计过
作者:编程之家 时间:2020-08-21
单一职责原则
本文转自http://www.cnblogs.com/cbf4life/archive/2009/12/11/1622166.html 1.1 我是“牛”类,我可以担任多职吗 单一职责原则的英文名称是Single Responsibility Principle,简称是SRP。这个设计原则备受争议,只要你想和别人争执、怄气或者是吵架,这个原则是屡试不爽的。如果你是老大,看到一个接口或类是
作者:编程之家 时间:2020-08-21
设计模式六大原则1:单一职责原则
定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。 解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理,当修改T2时,也不会
作者:编程之家 时间:2020-08-21
什么是依赖注入
原文地址 Spring 能有效地组织J2EE应用各层的对象。不管 是控制层的Action对象,还是业务层的Service对象,还是持久层的DAO对象,都可在Spring的 管理下有机地协调、运行。Spring将各层的对象以松耦合的方式组织在一起,Action对象无须关心Service对象的具体实现,Service对 象无须关心持久层对象的具体实现,各层对象的调用完全面向接口。当系统需要重构时,代码
作者:编程之家 时间:2020-08-21
如何向妻子解释OOD
如何向妻子解释OOD 前言 此文译自CodeProject上<How I explained OOD to my wife>一文,该文章在Top Articles上排名第3,读了之后觉得非常好,就翻译出来,供不想读英文的同学参考学习。 作者(Shubho)的妻子(Farhana)打算重新做一名软件工程师(她本来是,后来因为他们孩子出生放弃了),于是作者就试图根据自己在软件开发设计方面的经验
作者:编程之家 时间:2020-08-21
详解UML中的6大关系(关联、依赖、聚合、组合、泛化、实现)
转自 kobejayandy的专栏 UML定义的关系主要有六种:依赖、类属、关联、实现、聚合和组合。这些类间关系的理解和使用是掌握和应用UML的关键,而也就是这几种关系,往往会让初学者迷惑。这里给出这六种主要UML关系的说明和类图描述,一看之下,清晰明了;以下就分别介绍这几种关系: 继承【dependency】 指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以
作者:编程之家 时间:2020-08-21
HDU 3449 依赖背包
这道题虽然水水的,但是还是成功地给我增加了10多个WA。 最开始拿着题,一看,依赖背包嘛~直接DFS树形DP嗨起来,甚至连内存都没有算一下,3MLE; 然后又仔细看了一下题,没有必要用树形背包来做嘛,对每个背包01,就可以得到每个背包的泛化物品。结果又没有注意 把它们泛化物品的和写成了完全背包(囧),WA个无限。 做了很久才找到根源,结果又TLE了(再囧)。 后来又想了想,其实在之前求01背包的时
作者:编程之家 时间:2020-08-21
控制反转与依赖注入模式
控制反转即IoC (Inversion of Control),它把传统上由程序代码直接操控的对象的调用权交给外部容器,通过容器来实现对象组件的装配和管理。所谓的“控制反转”概念就是组件对象的控制权转移了,从程序代码本身转移到了外部容器。 IoC(Inversion of Control)是近年来兴起的一种思想,不仅仅是编程思想。主要是协调各组件间相互的依赖关系,同时大大提高了组件的可移植
作者:编程之家 时间:2020-08-21
依赖、关联、聚合和组合之间区别
在学习面向对象设计对象关系时,依赖、关联、聚合和组合这四种关系之间区别比较容易混淆。特别是后三种,仅仅是在语义上有所区别,所谓语义就是指上下文环境、特定情景等。他们在编程语言中的体现却是基本相同的,但是基本相同并不等于完全相同,这一点在我的前一篇博文《设计模式中类的关系》中已经有所提及,下面就来详细的论述一下在java中如何准确的体现依赖、关联、聚合和组合。 首先看一看书上对这四种关系的定义: 依
作者:编程之家 时间:2020-08-21
设计模式六大原则1:单一职责原则
定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。 解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理,当修改T2时,也不会
作者:编程之家 时间:2020-08-21
设计模式六大原则2:里氏替换原则
肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。 定义1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型
作者:编程之家 时间:2020-08-21
设计模式六大原则3:依赖倒置原则
依赖倒置原则: A.高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。 B.抽象不应该依赖于具体,具体应该依赖于抽象。 定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子
作者:编程之家 时间:2020-08-21
设计模式六大原则1:单一职责原则
定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。 解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理,当修改T2时,也不会
作者:编程之家 时间:2020-08-21
设计模式六大原则2:里氏替换原则
肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。 定义1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型。
作者:编程之家 时间:2020-08-21
详解UML中的6大关系(关联、依赖、聚合、组合、泛化、实现)
UML中的6大关系相关英文及音标: 依赖关系 dependency --------> 关联关系 association ______> 聚合关系 aggregation ______◇ 组合关系 Composition______◆ 实现 realization ------△ 泛化 generalization △---------- UML中的6大关系简单解释:
作者:编程之家 时间:2020-08-21
lld解决程序启动依赖库的问题
场景说明:查找程序依赖库是非常麻烦的,如果需要的又是一些不长使用的库,对于整个系统的移植是非常苦难的。目前尝试使用lld去查找所有依赖的库,然后将这些依赖的库提取,放在同一个文件夹中,然后制定依赖的路径,解决问题。 Ldd [选项] 文件 选项有-v:打印ldd 的版本号;-d:执行符号重部署,并报告缺少的目标对象(只对ELF 格式适用);-r:对目标对象和函数执行重新部署,并报告缺少的目标对
作者:编程之家 时间:2020-08-21
TDD的iOS开发初步以及Kiwi使用入门
TDD的iOS开发初步以及Kiwi使用入门 Kiwi 测试驱动开发(Test Driven Development,以下简称TDD)是保证代码质量的不二法则,也是先进程序开发的共识。Apple一直致力于在iOS开发中集成更加方便和可用的测试,在Xcode 5中,新的IDE和SDK引入了XCTest来替代原来的SenTestingKit,并且取消了新建工程时的“包括单元测试”的可选项(同样待遇的还有
作者:编程之家 时间:2020-08-21
关联、组合、聚合、依赖关系比较
类之间的关系 1. 种类: Generalization(泛化),Dependency(依赖关系)、Association(关联关系)、Aggregation(聚合关系)、Composition(合成关系)。 2. 其中Aggregation(聚合关系)、Composition(合成关系)属于Association(关联关系),是特殊的Association关联关系。 3. Generaliz
作者:编程之家 时间:2020-08-21
任何的文件系统都依赖文件驱动
对于Linux系统而言,文件系统真正打交道的是文件系统驱动,文件系统驱动后面才是设备,现在的设备大多数都是存在虚拟上的意义,例如tmpfs devfs等等,正是linux的内核中间层,摒弃了设备之间的差异,但是设备本身存在的差异性就决定:文件的读写和文件系统的映射之间根本不可能完全的等同,甚至一台机器也可以当做设备,更是不可同日而语的认为,所有的东西都在掌握之中,而是差异之后的相同。
作者:编程之家 时间:2020-08-21
里氏替换原则
转载请注明出处!!!http://blog.csdn.net/zhonghuan1992 所有配套代码均在github上:https://github.com/ZHONGHuanGit/DesignPattern 跟着ZHONGHuan学习设计模式 里氏替换原则 这节中我们会聊聊里氏替换原则,聊它之前,我们先看看定义。 定义:如果对每一个类型为
作者:编程之家 时间:2020-08-21
里氏替换原则
2.1 爱恨纠葛的父子关系 在面向对象的语言中,继承是必不可少的、非常优秀的语言机制,它有如下优点: 代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性; 提高代码的重用性; 子类可以形似父类,但又异于父类,“龙生龙,凤生凤,老鼠生来会打洞”是说子拥有父的“种”,“世界上没有两片完全相同的叶子”是指明子与父的不同; 提高代码的可扩展性,实现父类的方法就可以“为所欲为”了,君不见
作者:编程之家 时间:2020-08-21
依赖注入和控制反转
2.1 Dependency Injection and Inversion of Control Background "The question is, what aspect of control are [they] inverting?" Martin Fowler posed this question about Inversion of Control (IoC) on his s
作者:编程之家 时间:2020-08-21
依赖倒转原则
1、所谓依赖倒置原则(Dependence Inversion Principle)就是要依赖于抽象,不要依赖于具体。 简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。 2、面向过程的开发,上层调用下层,上层依赖于下层,当下层剧烈变动时上层也要跟着变动,这就会导致模块的复用性降低而且大大提高了开发的成本。 面向对象的开发很好的解决了这个问题,一般情况下抽象的
作者:编程之家 时间:2020-08-21
UML关系(泛化,实现,依赖,关联(聚合,组合))
UML关系(泛化,实现,依赖,关联(聚合,组合)) 博客分类: DesignPattern 设计模式 UML关系 泛化 实现 依赖 关联 聚合 组合 UML的构造快包含3种: (1) 事物(4种):结构事物,行为事物,分组事物,注释事物 (2) 关系(4种):泛化关系,实现关系,依赖关系,关联关系 (3) 图(10种):用例图,类图,对象图,包图,组件图,部署图,状态图,活动图,序列图,
作者:编程之家 时间:2020-08-21
上一页
39
40
41
42
43
44
45
46
下一页
小编推荐
热门标签
更多
python
JavaScript
java
HTML
reactjs
C#
Android
CSS
Node.js
sql
r
python-3.x
MysqL
jQuery
c++
pandas
Flutter
angular
IOS
django
linux
swift
typescript
路由器
JSON
路由器设置
无线路由器
h3c
华三
华三路由器设置
华三路由器
电脑软件教程
arrays
docker
软件图文教程
C
vue.js
laravel
spring-boot
react-native