设计模式

设计模式 (即,使代码编写真正工程化)
设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。
使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。
设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。

最早将模式的思想引入软件工程方法学的是1991-1992年以“四人组(Gang of Four,简称GoF,分别是Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides)”自称的4位著名软件工程学者,他们在1994年归纳发表了23种在软件开发中使用频率较高的设计模式。

刘伟——设计模式的艺术(软件开发人员内功修炼之道)书中提到:软件模式是指在软件开发过程中某些可重现问题的有效解决方法,其基础结果主要由4部分构成,包括:问题描述(待解决的问题是什么)、前提条件(在何种环境或约束条件下使用)、解法(如何解决)和效果(由哪些优缺点)。

软件模式基本结构:
这里写图片描述

GoF设计模式共23种,分为三种类型:
1、创建型模式(5种):单例模式工厂方法模式抽象工厂模式原型模式建造者模式
PS:简单工厂模式并不属于GoF23种设计模式,但是一般在介绍设计模式时,都会对其进行说明。
2、结构型模式(7种):适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、代理模式。
3、行为型模式(11种):策略模式模版方法模式命令模式迭代器模式观察者模式职责链模式(责任链模式)备忘录模式状态模式访问者模式中介者模式解释器模式(Interpreter模式)

7种常用的面向对象设计原则,是用于评价一个设计模式的使用效果的重要指标之一:
1、单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责。或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。
2、开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。
3、里氏代换原则(Liskov Substitution Principle, LSP):所有引用基类(父类)的地方必须能透明地使用其子类的对象。
4、依赖倒转原则(Dependence Inversion Principle, DIP):抽象不应该依赖于细节,细节应该依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。
5、接口隔离原则(Interface Segregation Principle, ISP):使用多个专门的接口,而不是使用单一的总接口,即客户端不应该依赖哪些它不需要的接口。
6、合成复用原则(Composite Resuse Principle, CRP):尽量使用对象组合,而不是继承来达到复用的目的。
7、迪米特法则(Law of Demeter, LoD):一个软件实体应当尽可能少地与其他实体发生相互作用。

于2024年4月-2025年9月期间,研究团队在贵州习水国家级自然保护区制定39条样线,涵盖灌木林、常绿阔叶林、针叶林、常绿落叶阔叶混交林、针阔混交林等不同植被类型,每条样线分春夏秋冬4个季节采集样品,用真菌采集软件记录经纬度、海拔、采集地点、时间、生境等信息,使用佳能相机(R6 mark Ⅱ)对大型真菌进行拍照,并采集标本,标本存放于贵州省生物研究所大型真菌标本馆(HGAMF)。 通过形态学初步鉴定,结合分子生物学最终鉴定,参考已]报道的中国毒蘑菇名录开展毒蘑菇的认定。 调查到保护区内有毒真菌7目25科64种,导致中毒的主要类型有急性肾衰竭型、神经精神型和胃肠炎型。最终形成贵州习水国家级自然保护区大型有毒真菌图片数据集,它由以下2个部分组成。 (1)附件1包含78张原始照片(.JPG),照片名字包括了大型有毒真菌的拉丁名和中文名,若无中文名的直接用拉丁名。 (2)附件2是一个压缩文件,包含了2张工作,其中一张是大型有毒真菌39条样线的信息,另一张是大型有毒真菌的中毒类型。 照片采用佳能相机R6 mark Ⅱ拍摄,物种鉴定通过多种文献核实,并经两位以上专家鉴定确认。该数据集可为研究地及周边的普通人识别有毒大型真菌提供参考,通过及时的图片对比,能有效避免误采误食大型有毒真菌,同时为因误食大型真菌可能引发的身体损伤进行了总结,能为患者及时治疗提供参考。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值