博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式
阅读量:4565 次
发布时间:2019-06-08

本文共 763 字,大约阅读时间需要 2 分钟。

设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

软件设计中要遵循以下6大原则:

开闭原则:对扩展开放,对修改关闭

里氏代换原则:如果调用的是父类的话,那么换成子类也完全可以运行

依赖倒转原则:抽象不应该依赖于细节,细节应当依赖于抽象。

接口隔离原则:定制服务的例子,每一个接口应该是一种角色,不多不少,不干不该干的事,该干的事都要干

合成/聚合复用原则:要尽量使用合成/聚合,尽量不要使用继承

最少知识原则:好像不要和陌生人说话,即一个对象应对其他对象有尽可能少的了解。

设计模式有23种,常见的有单例模式、原型模式、代理模式、工厂模式等等。

单例模式就是一个类只能创建出一个对象。有懒汉式模式和饿汉式模式,懒汉式就是在公共访问方法判断对象是否存在,不存在则创建,下次不再创建,它会有线程安全问题,一般使用双重检测锁解决。饿汉式就是类装载时就实例化对象,它不会涉及线程安全问题,但性能较差,如果这个对象用不了,白白浪费内存空间。

原型模式与单例模式正好相反,它通过克隆创建多个对象;

代理模式有静态代码和动态代表,静态代理就是加了一层封装而已。动态代码要通过反射或字节码来现实,JDK动态代理必须依靠接口才可以代理,第三方动态代理工具(例如CGLIB)一般依靠字节码工具ASM来完成。

工厂模式是客户知道需要什么对象但不知道怎么创建对象,可以使用工厂来创建。它有一个描述创建对象的接口、工厂类和创建对象方法、配置、客户类等多个角色。

转载于:https://www.cnblogs.com/huigee/p/9748449.html

你可能感兴趣的文章
制作导航条
查看>>
iOS中的内存管理1
查看>>
23种设计模式全解析
查看>>
Learning Python 008 正则表达式-003 sub()方法
查看>>
要检测两个C文件的代码的抄袭情况
查看>>
iOS开发之应用内支付IAP全部流程
查看>>
【web技术】html特效代码(一)
查看>>
SWFObject: 基于Javascript的Flash媒体版本检测与嵌入模块
查看>>
高可用集群搭建
查看>>
Lua学习笔记
查看>>
Redis监控工具,命令和调优
查看>>
zabbix-mysql迁移分离
查看>>
jQuery调用WCF 说明
查看>>
算法第5章作业
查看>>
7.9 练习
查看>>
基于ArcGIS JS API的在线专题地图实现
查看>>
learnByWork
查看>>
Unity3D热更新之LuaFramework篇[04]--自定义UI监听方法
查看>>
lua 函数
查看>>
Git的基本命令
查看>>