Java设计模式_七大原则】的更多相关文章

简介 单一职责原则.对类来说,即一个类应该只负责一项职责. 开闭原则.对扩展开放,对修改关闭.在程序需要进行扩展的时候,不能去修改原有代码,使用接口和抽象类实现一个热插拔的效果. 里氏替换原则.任何基类可以出现的地方,子类一定可以出现.实现抽象的规范,实现子父类相互替换. 依赖倒置原则.针对接口编程,依赖于抽象而不依赖于具体. 接口隔离原则.降低耦合度,接口单独设计,相互隔离. 最少知道原则(迪米特法则).一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立. 合成复用原则.…
java设计模式 以下内容为本人的学习笔记,如需要转载,请声明原文链接   https://www.cnblogs.com/lyh1024/p/16724932.html 设计模式 1.设计模式的目的 编写软件过程中,程序员面临着来自耦合性,内聚性和可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让程序(软件)具有更好的 代码重用性(即:相同功能的代码,不用多次编写) 可读性(即:编程规范性,便于其他程序员的阅读和理解) 可扩展性(即:当需要增加新的功能时,非常的方便,也称为可维…
Java开发设计——七大原则 摘要:本文主要介绍了在做面向对象开发时要注意的七个原则. 部分内容来自以下博客: https://www.cnblogs.com/xiyuekamisama/p/10572541.html 开闭原则(Open Closed Principle,OCP) 含义 开闭原则的含义是:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求. 作用 开闭原则是面向对象程序设计的终极目标,它使软件实体拥有一定的适应性和灵活性的同…
Java 设计模式(二)-六大原则 单一职责原则(Single Responsibility Principle) 定义: 不要存在多余一个原因导致类变更,既一个类只负责一项职责. 问题由来: 当类A有两个不同职责P1和P2时,当类A的职责P1需要修改时,可能影响职责P2的功能不能正常运行. 解决方案: 将类A分为类A1和类A2,A1的职责时P1,A2的职责是P2,此时修改P1或P2职责都不影响另一职责. 优点: 降低类负责度 降低变更引起的风险 提高类的可读性 提高系统的可维护性 里氏替换原则…
一.OOP三大基本特性 OOP 面向对象程序设计(Object Oriented Programming)作为一种新方法,其本质是以建立模型体现出来的抽象思维过程和面向对象的方法.模型是用来反映现实世界中事物特征的.任何一个模型都不可能反映客观事物的一切具体特征,只能对事物特征和变化规律的一种抽象,且在它所涉及的范围内更普遍.更集中.更深刻地描述客体的特征.通过建立模型而达到的抽象是人们对客体认识的深化. 封装 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的属性和方法只让可信的类操作,…
博主在大三的时候有上过设计模式这一门课,但是当时很多都基本没有听懂,重点是也没有细听,因为觉得没什么卵用,硬是要搞那么复杂干嘛.因此设计模式建议工作半年以上的猿友阅读起来才会理解的比较深刻.当然,你没事做看看也是没有坏处的. 总体来说设计模式分为三大类:创建型模式.结构型模式和行为型模式. 博主的上一篇文章已经提到过创建型模式,此外该文章还有设计模式概况和设计模式的六大原则.设计模式的六大原则是设计模式的核心思想,详情请看博主的另外一篇文章:设计模式之五大创建模式(附实例和详解). 接下来我们看…
创建型模式 抽象工厂模式(Abstract factory pattern): 提供一个接口, 用于创建相关或依赖对象的家族, 而不需要指定具体类. 生成器模式(Builder pattern): 使用生成器模式封装一个产品的构造过程, 并允许按步骤构造. 将一个复杂对象的构建与它的表示分离, 使得同样的构建过程可以创建不同的表示. 工厂模式(factory method pattern): 定义了一个创建对象的接口, 但由子类决定要实例化的类是哪一个. 工厂方法让类把实例化推迟到子类. 原型模…
设计模式(面向对象)有七大设计原则,分别是: 开闭原则:对扩展开放,对修改关闭 单一职责原则:每一个类应该专注于做一件事情 里氏替换原则:父类存在的地方,子类是可以替换的 依赖倒转原则:实现尽量依赖抽象,不依赖具体实现 接口隔离原则 合成服用原则 迪米特法原则 一.开闭原则 开闭原则是面向对象设计中最基础的设计原则. 对扩展开放:这意味着模块的行为是可以扩展的.当应用的需求改变时,可以对模块进行扩展,使其具有新的功能满足需求的变化. 对修改关闭:不允许对实体做任何修改,就是这些需要执行多样行为的…
第一章 设计原则 1.开闭原则 一个软件实体,像类,模块,函数应该对扩展开放,对修改关闭 在设计的时候,要时刻考虑,让这个类尽量的好,写好了就不要去修改.如果有新的需求来,在增加一个类就完事了,原来的代码能不动就不动.这个原则的特性一个是对扩展开发,一个是对修改关闭.即面对需求,我们要做的是通过增加代码来完成,而不是更改现有的代码.这也是设计原则的基础,精神所在 代码解释: 创建一个ICourse接口,用javaCourse类去实现它. /** * @program: designModel *…
一.开闭原则 开闭原则(Open-Closed Principle, OCP)是指一个软件实体如类.模块和函数应该对 扩展开放,对修改关闭. 所谓的开闭,也正是对扩展和修改两个行为的一个原则.强调 的是用抽象构建框架,用实现扩展细节. 可以提高软件系统的可复用性及可维护性.开 闭原则,是面向对象设计中最基础的设计原则.它指导我们如何建立稳定灵活的系统,实现开闭原则的核心思想就是面向抽象编程. 二.依赖倒置原则 依赖倒置原则(Dependence Inversion Principle,DIP)是…
一.创建型模式 1.抽象工厂模式(Abstract factory pattern): 提供一个接口, 用于创建相关或依赖对象的家族, 而不需要指定具体类.2.生成器模式(Builder pattern): 使用生成器模式封装一个产品的构造过程, 并允许按步骤构造. 将一个复杂对象的构建与它的表示分离, 使得同样的构建过程可以创建不同的表示.3.工厂模式(factory method pattern): 定义了一个创建对象的接口, 但由子类决定要实例化的类是哪一个. 工厂方法让类把实例化推迟到子…
概念: 代理模式是对象的结构模式.代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用. 就是一个人或者机构代表另一个人或者机构采取行动.在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 类图: 在代理模式中的角色: ● 抽象对象角色:声明了目标对象和代理对象的共同接口,这样一来在任何可以使用目标对象的地方都可以使用代理对象. ● 目标对象角色:定义了代理对象所代表的目标对象. ● 代理对象角色:代理对象内部含有目标对象的…
一.什么是复合模式? 在形式上,复合模式确实是多个模式的组合,但满足了这一条并不一定是复合模式,注意它的定义: 将多个模式结合起来形成一个“框架”,以解决一般性问题 一提到“框架”,可能最容易联想到的就是MVC吧,不过MVC确实是一个经典的复合模式 二.MVC与复合模式 Model,View,Controller各自的职责: 这里不得不强调一下控制逻辑与应用逻辑(算法逻辑)的区别: 所谓控制逻辑,就是判断在当前情景下应该调用什么对象的什么方法 而应用逻辑指的是具体对象的具体方法的内部实现(某个复…
public class Singleton { public static void main(String[] args) throws Exception { System.out.println(Class.forName("S1")); System.out.println(Class.forName("S2")); System.out.println(Class.forName("S3")); System.out.println(…
关于设计模式 设计模式(Design Pattern)是一套被反复使用.多数人知晓的.经过分类的.代码设计经验的总结,是一种设计思维,使用设计模式的目的:为了代码可重用性.让代码更容易被他人理解.保证代码可靠性. 设计模式使代码编写真正工程化.使用设计模式,使得开发变得更规范和简单. 工厂模式 概述:属于创建型设计模式,需要生成的对象叫做产品 ,生成对象的地方叫做工厂. 使用场景:在任何需要生成复杂对象的地方,都可以使用工厂方法模式, 直接用new可以完成的不需要用工厂模式.个人理解,重点就是这…
单例模式的实现: 定义一个类,在类中定义该类的静态变量,再定一个一个获取该类的静态变量的方法. UML图:…
懒汉式 非线程安全 特点:Lazy 初始化.非多线程安全.易实现 描述:这种方式是最基本的实现方式,这种实现最大的问题就是不支持多线程.因为没有加锁 synchronized,所以严格意义上它并不算单例模式.这种方式 lazy loading 很明显,不要求线程安全,在多线程不能正常工作. 1 public class Singleton { 2 private static Singleton instance; 3 4 //私有化构造器,不让其他类来创建对象 5 private Single…
前言 在日常工作中,我们使用Java语言进行业务开发的时候,或多或少的都会涉及到设计模式,而运用好设计模式对于我而言,又是一个比较大的难题.为了解决.克服这个难题,笔主特别开了这个博客来记录自己学习的笔记和自己的理解,也欢迎对此有兴趣的朋友一起来和笔主探讨,共同学习. 一.软件架构设计模式的七大原则 1.开闭原则 对扩展开放,对修改关闭.在程序需要扩展的时候,不能去修改原有的代码实现一个热插拔的效果.简而言之,就是用抽象构建架构,用实现扩展细节. 2.单一职责原则 不要存在多于一个导致类变更的原…
前言 最近在学习一些基本的设计模式,发现很多博客都是写了六个原则,但我认为有7个原则,并且我认为在编码中思想还是挺重要,所以写下一篇博客来总结下 之后有机会会写下一些设计模式的博客(咕咕咕........ 设计模式的七大原则 1.单一职责原则 2.开放-封闭原则 3.依赖倒置原则 4.里氏替换原则(LSP) 5.接口隔离原则 6.迪米特原则(最少知道原则) 7.合成复用原则 1.单一职责原则 准确解析:就一个类而言,应该仅有一个引起它变化的原因 当一个类职责变化时不会导致另一个类职责的变化. 优…
图解Java设计模式之设计模式面试题 1.1 Java设计模式内容介绍 1.1.1 先看几个经典的面试题 1.1.2 设计模式的重要性 1.1 Java设计模式内容介绍 1.1.1 先看几个经典的面试题 原型设计模式问题 :1)有请使用UML类图画出原型模式核心角色2)原型设计模式的深拷贝和浅拷贝是什么.并写出深拷贝的两种方式的源码(重写clone方法实现深拷贝.使用序列化来实现深拷贝)3)在Spring框架中哪里使用到原型模式,并对源码进行分析beans.xml <bean id="id…
设计模式的目的 编写软件的过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战.设计模式为了让程序具有更好的 1.代码重用性(即:相同功能的代码,不用多次编写) 2.可读性(即:编程规范性,方便程序员读懂代码) 3.可扩展性(即:当需要增加新的功能时,非常方便,称为可维护) 4.可靠性(即:当我们增加新功能后,对原功能没有影响) 5.使程序员呈现搞内聚,低耦合的特性 设计模式的七大原则 1.单一职责原则 2.接口隔离原则 3.依赖倒转原则 4.里氏替换原则…
第一写技术博客,只是想把自己一天天积累的东西与大家分享.今天在看<大型网站架构和java中间件>这本书时,其中提到代理模式的动态代理.作为java中间件的一个重要基础,我觉的有必要整理和分析下java的23种设计模式,如有不对的地方,请大家留贴指正. 一.设计模式的分类 总体来说,Java的设计模式分为三个大类(创建型模式.结构型模式.行为型模式) 创建型模式:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式:适配器模式.装饰模式.代理模式.外观模式(又称门面模式).桥…
最近几年来,人们踊跃的提倡和使用设计模式,其根本原因就是为了实现代码的复用性,增加代码的可维护性.设计模式的实现遵循了一些原则,从而达到代码的复用性及增加可维护性的目的,设计模式对理解面向对象的三大特征有很好的启发,不看设计模式,很难深层地体会到面向对象开发带来的好处 .在刚开始学习中,很难做到将这些模式融汇贯通,所以这个需要我们在编码前多思考,等想充分了,在开始实践编码.下面是设计模式应当遵循的七大原则 1.开闭原则(Open Close Principle) 定义:一个软件实体如类.模块和函…
2019年9月6日11:15:46 关于设计模式,其实就是编程思想的一个体现,有比较完善的编程思想写出的项目代码和没有编程思想的写出的差距巨大,代码的可读性,可维护性,可扩展性天差地别,有些刚接触的编程思想的人无法体会,等 你开始设计项目和某些关键性模块的时候,就完全可以理解了,其实我犯了一个错误,我现在项目,某些核心功能,因为自己没有完全参与导致写的部分核心代码问题很大,最后还得自己填,代码逻辑设计和代码审查, 不管你有多忙,请一定参与,不然坑挖好再填,因为项目已经跑起来,改起来难度会很大 为…
图解Java设计模式之设计模式七大原则 2.1 设计模式的目的 2.2 设计模式七大原则 2.3 单一职责原则 2.3.1 基本介绍 2.3.2 应用实例 2.4 接口隔离原则(Interface Segregation Principle) 2.4.1 基本介绍 2.4.2 应用实例 2.5 依赖倒转原则 2.5.1 基本介绍 2.5.2 应用实例 2.6 里氏替换原则 2.6.1 OO中的继承性的思考和说明 2.6.2 基本介绍 2.6.3 一个程序引出的问题和思考 2.6.4 解决方法 2…
迷茫了一周,一段时间重复的 CRUD ,着实让我有点烦闷,最近打算将这些技术栈系列的文章先暂时搁置一下,开启一个新的篇章<设计模式>,毕竟前面写了不少 "武功招式" 的文章,也该提升一下内功了 一 设计模式概述 (一) 什么是设计模式 设计模式,即Design Patterns,是指在软件设计中,被反复使用的一种代码设计经验.使用设计模式的目的是为了可重用代码,提高代码的可扩展性和可维护性 1995年,GoF(Gang of Four,四人组/四人帮)合作出版了<设计…
1  概述 本章叙述面向向对象设计的七大原则,七大原则分为:单一职责原则.开闭原则.里氏替换原则.依赖倒置原则.接口隔离原则.合成/聚合复用原则.迪米特法则. 2  七大OO面向对象设计 2.1 单一职责原则SRP(Simple Responsibility Principle) 单一职责原则,就是一个设计元素只做一件事.什么是“只做一件事”?就是少管闲事.现实中也是如此,如果让一个人认真的去做一件事,那么任何人都有信心可以做到很出色.就一个类而言,应该仅有一个引起它变化的原因,如果你能想到两个…
转载: Java经典设计模式之七大结构型模式 博主在大三的时候有上过设计模式这一门课,但是当时很多都基本没有听懂,重点是也没有细听,因为觉得没什么卵用,硬是要搞那么复杂干嘛.因此设计模式建议工作半年以上的猿友阅读起来才会理解的比较深刻.当然,你没事做看看也是没有坏处的. 总体来说设计模式分为三大类:创建型模式.结构型模式和行为型模式. 博主的上一篇文章已经提到过创建型模式,此外该文章还有设计模式概况和设计模式的六大原则.设计模式的六大原则是设计模式的核心思想,详情请看博主的另外一篇文章: Jav…
一.里氏替换原则 如果说实现开闭原则的关键步骤就是抽象化,那么基类(父类)和子类的继承关系就是抽象化的具体实现,所以里氏替换原则就是对实现抽象化的具体步骤的规范.即:子类可以扩展基类(父类)的功能,但不能改变父类原有的功能. 定义:一个软件实体如果适用一个父类的话,那一定是适用于其子类,所有引用父类的地方必须能透明地使用其子类的对象,子类对象能够替换父类对象,而程序逻辑不变. 里氏替换原则最核心得一句话就是:子类可以扩展基类(父类)的功能,但不能改变父类原有的功能.它包含着四种含义: 子类可以实…
目录 设计模式七大原则 UML类图 设计模式分类 单例模式 工厂设计模式 简单工厂模式 工厂方法模式(使用抽象类,多个is-a) 抽象工厂模式(使用接口,多个like-a) 原型模式 建造者模式 适配器模式 桥接模式 装饰者模式 组合模式 外观模式 享元模式 代理模式 模板方法模式 命令模式 访问者模式 迭代器模式 观察者模式 中介者模式 备忘录模式 解释器模式 状态模式 策略模式 职责链模式 idea画UML类图 总结 设计模式七大原则 设计模式的目的:让程序有更好的复用性.可读性.可扩展性.…