设计模式一:简介和设计原则

编程艺术之源:深入了解设计模式和设计原则 设计模式是软件开发中常用的解决问题的模板,它是通过对软件开发中经常遇到的问题进行总结和抽象产生的。设计模式的基础是面向对象思想和设计原则,通过对这些基础知识的理解,可以更好地学习和应用设计模式。为了有效地学习设计模式,首先需要明确学习的目的,然后按照一定的学习步骤系统学习,才能够真正掌握设计模式的精髓。通过本文的介绍,读者将更加深入地认识设计模式以及学习设计模式的方法。 阅读详情

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

设计模式的来源

在 1994 年,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人合著出版了一本名为 Design Patterns - Elements of Reusable Object-Oriented Software(中文译名:设计模式 - 可复用的面向对象软件元素) 的书,该书首次提到了软件开发中设计模式的概念。

四位作者合称 GOF(四人帮,全拼 Gang of Four)。他们所提出的设计模式主要是基于以下的面向对象设计原则。

  • 对接口编程而不是对实现编程。
  • 优先使用对象组合而不是继承。

1995年出版的《设计模式》一书,第一次将设计模式提升到理论高度,并将之规范化。书中一共总结了23种基本的设计模式。而这23中设计模式几乎涵盖了面向对象设计过程中所有问题的解决方案。

模式分类

这些模式可以分为三大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)、行为型模式(Behavioral Patterns)。当然,我们还会讨论另一类设计模式:J2EE 设计模式。

序号模式 & 描述包括
1创建型模式
  • 这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。 工厂模式(Factory Pattern)抽象工厂模式(Abstract Factory Pattern)单例模式(Singleton Pattern)建造者模式(Builder Pattern)原型模式(Prototype Pattern)
2结构型模式这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。 适配器模式(Adapter Pattern)桥接模式(Bridge Pattern)过滤器模式(Filter、Criteria Pattern)组合模式(Composite Pattern)装饰器模式(Decorator Pattern)外观模式(Facade Pattern)享元模式(Flyweight Pattern)代理模式(Proxy Pattern)
3行为型模式这些设计模式特别关注对象之间的通信。 责任链模式(Chain of Responsibility Pattern)命令模式(Command Pattern)解释器模式(Interpreter Pattern)迭代器模式(Iterator Pattern)中介者模式(Mediator Pattern)备忘录模式(Memento Pattern)观察者模式(Observer Pattern)状态模式(State Pattern)空对象模式(Null Object Pattern)策略模式(Strategy Pattern)模板模式(Template Pattern)访问者模式(Visitor Pattern)
4J2EE 模式这些设计模式特别关注表示层。这些模式是由 Sun Java Center 鉴定的。 MVC 模式(MVC Pattern)业务代表模式(Business Delegate Pattern)组合实体模式(Composite Entity Pattern)数据访问对象模式(Data Access Object Pattern)前端控制器模式(Front Controller Pattern)拦截过滤器模式(Intercepting Filter Pattern)服务定位器模式(Service Locator Pattern)传输对象模式(Transfer Object Pattern)

书中提到的23种设计模式分别是:

1.单例模式 2.工厂方法模式 3.抽象工厂模式 4.模版方法模式 5.建造者模式 6.代理模式 7.原型模式 8.中介者模式 
9.命令模式 10.责任链模式 11.装饰模式 12.策略模式 13.适配器模式 14.迭代器模式 15.组合模式 16.观察者模式 
17.门面模式 18.备忘录模式 19.访问者模式 20.状态模式 21.解释器模式 22.享元模式 23.桥梁模式

这里写图片描述
在运用面向对象的思想进行软件设计时,需要遵循的原则一共有6个,他们是:

  1. 单一职责原则(Single Responsibility Principle)
  2. 里氏替换原则(Liskov Substitution Principle)
  3. 依赖倒置原则(Dependence Inversion Principle)
  4. 接口隔离原则(Interface Segregation Principle)
  5. 迪米特法则(Law Of Demeter)
  6. 开闭原则(Open Close Principle)

    在软件设计的过程中,只要我们尽量遵循以上六条设计原则,设计出来的软件一定会是一个优秀的软件,它必定足够健壮、足够稳定,并以极大的灵活性来迎接随时而来的需求变更等因素。当完全明白这六个原则的含义时,小菜便完成了走向大牛的蜕变。
    
【Java】六大设计原则和23种设计模式 代理模式给某一个对象提供一个代理对象并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。举个例子来说明:假如说我现在想买一辆二手车,虽然我可以自己去找车源,做质量检测等一系列的车辆过户流程,但是这确实太浪费我得时间和精力了。我只是想买一辆车而已为什么我还要额外做这么多事呢?于是我就通过中介公司来买车,他们来给我找车源,帮我办理车辆过户流程,我只是负责选择自己喜欢的车,然后付钱就可以了。 阅读详情

相关推荐

多路输出电源的交叉调整率:从理论到无源优化实践

本文深入探讨了多路输出电源中的交叉调整率问题,分析了其物理根源及无源优化方法。通过漏感与耦合的理论分析,结合加权反馈、电感耦合等五种无源优化技术,帮助工程师有效解决交叉调整率挑战。文章还以TDK-Lambda CUT75系列为例,展示了优化技术的实际应用与效果。

weixin_26886855的博客 279

设计模式与设计原则简介——及其设计模式学习方法

本文主要是关于【设计模式与设计原则的关系】以及【常见的六种面向对象设计原则】介绍说明

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 1389

特征选择(模型输入参数的分析选择)方法汇总

特征选择是模式识别和机器学习领域的重要研究课题之一。为了提高准确率, 人们往往最大限度地提取特征信息。然而, 过大的特征向量维数不仅导致计算成本的增加, 复杂运算也随之带来分类识别率的下降。因此, 通过合适的特征选择算法, 去除无关特征和冗余特征, 获得有助于分类的最优特征子集, 对提高识别性能和降低计算成本具有重要意义。 特征选择主要有两个功能: 减少特征数量、降维,使模型泛化能力更强,减少过拟合 增强对特征和特征值之间的理解 参考资料: 优快云《几种常用的特征选择方法》 知乎《机器学习中,.

David's Tweet 1万+

设计模式之六大设计原则

古人云: 有道无术,术可求.有术无道,止于术.而设计模式通常需要遵循一些设计原则,在设计原则的基础之上衍生出了各种各样的设计模式。设计原则是设计要求,设计模式是设计方案,使用设计模式的代码则是具体的实现。设计模式中主要有六大设计原则,简称为SOLID ,是由于各个原则的首字母简称合并的来(两个L算一个,solid 稳定的),六大设计原则分别如下:​1、单一职责原则(Single Responsibitity Principle)​2、开放封闭原则(Open Close Principle)​。

在青海看海的企鹅的博客 2922

SWIFT报文格式解析:从MT103到MT760,这些金融电文你了解多少?

本文深入解析SWIFT报文格式中的MT103与MT760,详细介绍了这两种金融电文的结构、应用场景及实操技巧。MT103用于国际汇款业务,MT760则适用于银行保函开立,两者在国际金融交易中扮演关键角色。文章还提供了常见问题解决方案和自动化处理建议,帮助金融从业者高效处理跨境业务。

h9j8k7l6m5n的博客 1137

NL2SQL实践系列(1):深入解析Prompt工程在text2sql中的应用技巧

NL2SQL实践系列(1):深入解析Prompt工程在text2sql中的应用技巧

丨汀、的博客 4327

DesignPattern设计模式

本文主要介绍了设计模式相关内容。包括软件设计的SOLID原则,设计模式的分类,单例模式的思想与实现,工厂模式的思想与实现,建造者模式的思想与实现,代理模式的思想与实现,责任链模式的思想与实现等内容。供个人学习使用。

专注Java和MySQL领域知识分享 1871

Android实现自动输入文本效果 (附完整源码)

Android实现自动输入文本效果 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 413

【设计模式】6大设计原则和23种设计模式

它们解决的问题是:如何组合类和对象来构建更复杂的、系统化的结构,同时保持系统的可扩展性和模块化。它们解决的问题通常是:如何以更优雅、灵活的方式创建对象,同时避免直接使用new关键字的硬编码。它们解决的问题是:在运行时,让对象之间的通信变得灵活、解耦,并使代码具有更清晰的逻辑。它们通过对对象创建过程的抽象,减少代码中的耦合性,使创建对象的过程更灵活和可控。它们处理的是如何优雅地组织类和对象之间的关系,以形成更大的、灵活的结构。根据项目需求,选择正确的设计模式来贯彻相应的设计原则,从而提升代码的。

藓类少女的博客 1420

如何构建一个 AI 驱动的数据分析系统

在现代数据分析中,将 AI 引入数据分析系统中可以极大提升效率和自动化程度。本文将从架构设计、工具选择、实现步骤等多个方面进行详细说明,帮助你构建一个 AI 驱动的数据分析系统。

晴天彩虹雨的博客 703

Transformer模型详解

​本文主要介绍Transformer系列,从基础到理论,对注意力机制进行总结并解释《Attention is all you need》,提出解决sequence to sequence问题的transformer模型,用全attention的结构代替了lstm,抛弃了之前传统的encoder-decoder模型必须结合cnn或者rnn的固有模式,只用attention。文章的主要目的是在减少计算量和提高并行效率的同时不损害最终的实验结果。

专注大数据与人工智能技术分享,欢迎私信加群互相学习! 5276

DesignPattern_Java:设计模式分类和设计原则

设计模式分类: 创建型: 单例模式(Singleton Pattern) 工厂方法模式(Factory Pattern) 抽象工厂模式(Abstract Factory) 建造者模式(Builder Pattern) 原型模式(Prototype Pattern) 结构型: 代理模式(Proxy) 装饰模式(Decorator) 适配器模式(Adapter) 组合模式(Com

Anonymous 1809

NSIS教程(6): 使用第三方插件

NSIS内置了很多指令,这些指令可以满足我们基本需求,但难免会遇到NSIS没有内置的功能,如进程操作,后台运行(即多线程),7z压缩等等,这个时候我们就需要借助第三方插件来满足我们所需要的功能了。 一、插件获取 NSIS官方收录插件的网址是:http://nsis.sourceforge.net/Category:Plugins,我们可以在这个网站上查找和下载我们需要的插件,该网站上针对每

while(1) { smile(); } 9万+

设计原则和设计模式

提供一个创建产品族的接口,而不需要明确指定要创建的具体类, 其每个子类可以生产一系列相关的产品。

m0_64643342的博客 1962

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

设计原则与设计模式

六大设计原则和 23 种设计模式构成了软件设计的核心知识体系。六大设计原则为我们提供了高层次的指导方针,帮助我们从宏观角度构建合理、可维护的软件架构。而 23 种设计模式则是具体的实践工具,针对不同的场景和问题,提供了经过验证的解决方案。在实际的软件开发过程中,我们需要根据具体的业务需求和场景,灵活运用这些原则和模式。它们不是孤立存在的,而是相互关联、相互补充的。例如,在使用单例模式确保系统中某些资源唯一的同时,可能会遵循单一职责原则,让单例类专注于一项核心功能;

ByteBlossom 1251

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

DesignPattern - 设计原则与设计模式初探

欢迎关注微信公众号:FSA全栈行动 ???? 一、设计原则 设计模式是站在设计原则的基础之上的,所以在学习设计模式之前,有必要了解一下设计原则 软件设计开发原则 为了让代码有更好的重用性,可读性,可靠性,可维护性 有六大原则,英文首字母拼在一起就是 SOLID(稳定的),所以也称之为 SOLID 原则 1、单一职责原则(Single Responsibility Principle) 一个类只负责一个功能领域中的相应职责,就一个类而言,应该只有一个引起它变化的原因 是实现 高内聚、低耦合 的指

GitLqr的博客 349

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

设计模式及六大设计原则简介

设计模式及六大设计原则简介 1. 设计模式简介 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。是软件开发人员在软件开发过程中面临一般问题的解决方案,这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性,使代码编写真正工程化。 2. 什么是GOF(四人帮...

这世上所有的久处不厌,都是因为用心 349

一表总结 Java 的3种设计模式与6大设计原则

创建型模式关注于对象的创建机制,提供了创建对象的灵活性。结构型模式关注于如何将类或对象组合成更大的结构。行为型模式关注于对象之间的通信、交互。

无限大的博客 1746

设计模式-设计原则

设计模式的设计原则SOLID ,设计原则的思想为了帮助开发人员建立 高内聚、低耦合、可复用、可扩展、易维护的思想

weixin_37813118的博客 2189

Java23种设计模式和设计原则

(1)创建型模式(Creational Pattern)关注对象的创建过程(2)创建型模式对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离,对用户隐藏了类的实例的创建细节(3)创建型模式描述如何将对象的创建和使用分离,让用户在使用对象时无须关心对象的创建细节,从而降低系统的耦合度,让设计方案更易于修改和扩展。

m0_74620620的博客 1250

游戏设计中常见的设计模式——设计原则

设计模式其实时基于在开发中经常出现的问题所提出的解决方案的核心,之后可以让你基于某中设计模式变出各种具体的招式,来应对各种问题。软件开发就是使用某一种程序设计语言,来完成软件系统中需要具备的功能,这些功能就可以被设计者成为“问题”。常见的“问题”分为两种:一种是特定的问题,就是该问题只会出现在某一个软件系统中;另一种是泛问题,就是诸如此类的问题会以相同的形式出现在不同软件系统中。而设计模式就是针对这些泛问题所设计的解决方案。

2401_86085828的博客 4321

常用设计原则和设计模式

文章目录常用设计原则和设计模式常用的设计原则(记住)软件开发的流程常用的设计原则常用的设计模式基本概念基本分类设计模式详解(重点)单例设计模式普通工厂模式基本概念类图结构代码实现举例普通工厂模式的优势主要缺点多个工厂方法模式基本概念类图结构代码实现举例主要缺点静态工厂方法模式基本概念类图结构实际意义(工厂方法模式的作用)主要缺点抽象工厂模式基本概念类图结构代码实现举例主要优势装饰器模式基本概念类图结构代码实现举例实际意义代理模式基本概念类图结构代码实现举例实际意义代理模式和装饰器模式的比较模板方法模式基本概

hyment的博客 260

设计模式和六大设计原则

在软件开发中,经过前辈们不断的试错,终是对软件系统的设计和开发总结了一些原则和模式, 不管用什么语言做开发,都将对我们系统设计和开发提供指导意义。

G_whang的博客 886

java—01 设计模式&设计原则(I)

研发 --> 架构 (定义、例子,框架或接口中用过相关的开发)Single Reposibility Principle定义:一个类或者模块/服务/架构只负责完成一个职责。电商拆分成订单、库存、物流、支付。LSP:Liskov Substitution Principle定义:多用组合,少用继承。(在自己的类里引用其他的类(new一个类))含义:(1)里氏替换原则是针对继承而言的,如果继承是为了实现代码重用,也就是为了共享方法,那么共享的父类方法就应该保持不变,不能被子类重新定义。子类只能通过新添加方法来

QiAn的博客 1504

设计模式和代码设计原则

第一大分支:创建型模式 (Creational Patterns) - 处理对象创建机制核心思想:将对象的创建与使用分离,使系统更灵活、更易于扩展。主要模式单例模式意图:保证一个类仅有一个实例,并提供一个全局访问点。关键:私有构造函数,静态获取方法。工厂方法模式意图:定义一个用于创建对象的接口,让子类决定实例化哪一个类。关键:将实例化推迟到子类。抽象工厂模式意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。关键:生产“产品族”。建造者模式。

weixin_50470247的博客 895
上一篇: RabbitMQ基本概念
下一篇: 微信登陆和支付
牧竹子
博客等级 码龄17年 572粉丝 233原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值