**设计模式中的常用原则
1 单一职责原则:
单一职责就是发现软件设计中的不同职责,并把这些职责相互分离。比如代理模式中,验证交给代理完成,真实对象只需要关注自身的逻辑实现。见http://www.cnblogs.com/buptzlb/p/7595899.html 应用四
2 开放-封闭原则:
是说软件实体(比如类,函数)应该可以扩展,但是不可修改。意思是,在不影响其他功能代码块功能的前提下,课增加代码。比如简单工厂设计中http://www.cnblogs.com/buptzlb/p/7593663.html,增加开放运算不会影响加减乘除,这就是开放的。
另外一种理解,面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码。
举例:电脑内存不够用,直接加个内存条就好了。
开放、封闭原则是面向对象设计的核心所在。
3 里氏替换原则:
- 子类型必须能够替换掉他们的父类型。
- 子类拥有父类的非private的行为和属性。
4 依赖倒转原则
- 抽象不依赖于细节,细节要依赖抽象
- 高层模块和底层模块都要依赖抽象
- 要面向接口编程,而不是面向实现。
5 迪米特法则
- 根本思想就是强调了类之间的松耦合。如果两个类不必须进行直接通信,那么要设计成松耦合,通过第三方(比如代理)去访问。
- 为什么这么做?类之间的耦合越弱 ,越有利于复用,一个处于弱耦合的类被修改,不会对有关系的类造成波及 。
转载于:https://www.cnblogs.com/buptzlb/p/7593829.html
**设计模式中的常用原则相关推荐
- 设计模式中遵循的原则:单一职责、开发-封闭、依赖倒转
设计模式中遵循的原则:单一职责.开放-封闭.依赖倒转 单一职责原则 一个类而言,应该仅有一个引起它变化的原因. 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会消弱或者抑制这 ...
- 设计模式中的七大原则(代码 + 图解)
文中涉及的代码:链接:提取码:tqjq 文章目录 设计模式 1. 目的 2. 分类 3. 原则 3.1单一职责原则 3.2 接口隔离原则 3.3 依赖倒转原则 3.4 里氏替换原则 3.5 开闭原则 ...
- 设计模式中的solid原则
好的代码不只为了完成现有功能,也会考虑后续扩展. 在结构设计上松耦合易读易扩展,在领域实现上高内聚不对外暴露实现细节不被外部干扰. 在众多项目的锤炼和对程序设计的不断追求,多年编程历程提炼出来的心得体 ...
- ASP.NET 设计模式中依赖倒置原则
依赖倒置原则 A.高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象. B.抽象不应该依赖于具体,具体应该依赖于抽象. 依赖倒置原则 A.高层次的模块不应该依赖于低层次的模块,他们都应该依赖于 ...
- Java设计模式中的六大设计原则
最近一直在看有关设计模式的博客和文章,发现自己对于设计模式的认识和理解还是有点浅显,于是想动手写博客巩固一下. 在开始阐述设计模式之前,首先介绍一下设计模式中的六大原则: 总原则-开闭原则 ...
- 软件设计中的一些原则
本文为大家介绍软件设计中的一些原则,都是经过长期经验总结出来的知识,每一个程序员都应该了解,相信对大家在进行软件设计的过程中会有很大帮助. Don't Repeat Yourself (DRY) DR ...
- java常用代码解析_Java设计模式常用原则代码解析
本篇文章小编给大家分享一下Java设计模式常用原则代码解析,代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 1.单一职责原则每一个类负责一个职责(一个类只有 ...
- java设计模式中不属于创建型模式_23种设计模式第二篇:java工厂模式定义:工厂模式是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式...
23种设计模式第二篇:java工厂模式 定义: 工厂模式是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 工厂模式主要是为创建对象提供过渡接口, ...
- 设计模式中必须知道的一些原则
原则1:DRY(Don't repeat yourself) 即不要写重复的代码,而是用"abstraction"类来抽象公有的东西.如果你需要多次用到一个硬编码值,那么可以设为公 ...
最新文章
- iOS 没到年底NSDate 时间出错问题
- Solr Cache使用介绍及分析
- 51CTO学院三周年,一起成长与奋斗的日子
- python列表的索引算法_Python-确定列表是否对称的算法
- supervisor安装部署和使用实例
- 入门人工智能,我究竟该学些什么?
- spring mvc 实现单文件 || 多文件上传
- 《Web安全之机器学习入门》一 第3章 机器学习概述
- 时光手帐如何打印 时光手帐打印的方法
- Problem Solving(POJ-3265)
- mysql主从复制同步实验_db.mysql.主从同步实验
- 项目实战:DIY光驱激光雕刻机-激光切割机 (含制作步骤 实物 图纸 程序 上位机软件 )下载
- 申报表计算机代码是什么,金税盘的维护费在申报表上面有一个要填写减免性质代码怎么填啊 ?那个代码是什么呢?...
- 每台计算机需要配置网关吗,怎么设置一台电脑作为网关
- 解决移动浏览器不能正确转化时间
- 苹果系统 怎么找到共享计算机,Mac电脑怎么访问共享文件夹
- 〖毕业季|进击的技术er〗其他人都在缅怀青春、告诉你如何拿到 offer 、提高自己的技术栈、做未来规划路线,我偏要反其道而行、告诉你们一个不一样的技术er的职场成长。
- tfs java_Java SDK for TFS
- python调用 微信,向好友发送微博热搜榜
- Linux中常用命令
热门文章
- python图像文件压缩_python实现图片压缩代码实例
- Android日志[基础篇]二 Android Studio修改LogCat日志的颜色
- mysql 回滚段_MySQL和PostgreSQL比较
- java中unicode显示乱码_Java 已知Java系统编码是GBK,jtextarea从一编码为Unicode的文本中读取数据,出现乱码,怎么正常显示?...
- 我的世界java服务器刷_一个教程, 叫你如何在服务器刷op
- 输出一个整数的逆序数
- Android studio下载安装使用遇到的问题及解决办法
- mysql text类型 使用方法_MySQL使用TEXT/BLOB类型的知识点详解
- java怎么确定数据在区间内_处理数据时,单元格内内容太多无法计数怎么破?...
- java二维数组存储数据,从键盘上录入学生人数,考试科目数,以及每个学生每科分数,输出每个学生的最高分、最低分、总分、平均分