设计模式
文章平均质量分 89
23种设计模式总结
头顶一点云
这个作者很懒,什么都没留下…
展开
-
JAVA设计模式之装饰模式
目录前言一,装饰模式步骤二,使用场景,及优缺点三,装饰模式与代理模式的区别前言假设有一个接口Human,一个接口的实现类Man。人类Human是可以跑步的,但是不能飞。如果想给人类加上飞翔的翅膀,可以有三种解决方案:修改实现类Man的方法,但不符合开闭原则给实现类Man添加一个子类,扩展一个人类可以飞的功能。问题在于,如果又想给人类增加猎豹般奔跑的速度,需要继续扩展一个子类。显然,使用继承的方式去扩展一个类的功能,会增加类的层级,类的臃肿会加大维护的成本。使用装饰模式扩展一个类的功能。好处在于,转载 2021-03-12 19:30:40 · 627 阅读 · 0 评论 -
JAVA设计模式之适配器模式
目录一、 概述二、解决的问题三、 模式中的角色四、 实现方式1 类的适配器模式2 对象适配器五、模式总结1 优点2 缺点3 适用场景六、适配器应用举例一、 概述将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。二、解决的问题即Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。下面是两个非常形象的例子三、 模式中的角色1 目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,转载 2021-03-12 11:25:32 · 363 阅读 · 0 评论 -
JAVA设计模式之单例模式
目录一、单例模式介绍1 模式说明2 作用(解决的问题)3 工作原理4 单例模式的一般实现步骤5 特点二、单例模式的实现方式1,初始化单例类时,立即创建单例①饿汉式②枚举类型2、按需、延迟创建单例①懒汉式(基础实现)②同步锁(懒汉式的改进)③双重校验锁(懒汉式的改进)④静态内部类三、总结一、单例模式介绍1 模式说明实现1个类只有1个实例化对象 且 提供一个全局访问点2 作用(解决的问题)保证1个类只有1个对象,降低对象之间的耦合度3 工作原理在Java中,我们通过使用对象(类实例化后)来操作这转载 2021-03-11 17:15:06 · 118 阅读 · 0 评论 -
JAVA设计模式之原型模式
目录定义类型类图作用以及实现方式JAVA实现代码:原型模式的优点及适用场景原型模式的注意事项定义用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。类型创建类模式类图作用以及实现方式原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件:实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clone方法。在java虚拟机中,只转载 2021-03-10 18:40:09 · 144 阅读 · 0 评论 -
java设计模式之建造者模式
文章目录前言建造模式的本质:应用场景:优点:Mybatis中用到的建造者模式:实例:编码步骤以及JAVA代码前言建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。(Separate the construction of a complex object from its representation so that the same construction process can create different repres转载 2021-03-10 10:35:47 · 167 阅读 · 0 评论 -
JAVA设计模式之策略模式
前言背景在软件开发中常常遇到这种情况,实现某一个功能有多种算法或者策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来完成该功能。如查找、排序等,一种常用的方法是硬编码(Hard Coding)在一个类中,如需要提供多种查找算法,可以将这些算法写到一个类中,在该类中提供多个方法,每一个方法对应一个具体的查找算法;当然也可以将这些查找算法封装在一个统一的方法中,通过if…else…或者case等条件判断语句来进行选择。这两种实现方法我们都可以称之为硬编码,如果需要增加一种新的查找算法,需要修改封转载 2021-03-09 20:09:52 · 218 阅读 · 1 评论 -
java设计模式之简单工厂模式、工厂方法模式、抽象工厂模式
前言一,简单的工厂模式含义解决的问题使用步骤java代码特点缺点二、静态工厂三、工厂方法模式定义主要作用解决问题使用步骤java代码实现优点总结四、抽象工厂模式定义主要作用解决的问使用步骤java代码实现总结一,简单的工厂模式首先举一个例子:我们现在去一家饭馆吃饭,点什么我们需要告诉餐馆我们需要什么:public interface Restaurant { void cook();}public class Duck implements Restaurant { @Overr转载 2021-03-09 17:28:09 · 374 阅读 · 0 评论 -
JAVA设计模式之代理模式
前言【**代理模式案例-JAVA代码实现**】1,租房2, 买车动态代理【代理模式应用场景举例】比如在玩“极品飞车”这款游戏,如果游戏者手中的金钱达到了一定的数量就可以到车店买一部性能更高的赛车,那么这个卖车的“车店”就是一个典型的“汽车厂家”的“代理”,他为汽车厂家“提供卖车的服务”给有需求的人士。从面向对象的方面考虑,“销售汽车的代理”也是一个对象,那么这个对象也具有一定的状态,在软件项目中这个对象也具有管理财务进销存的基本功能,那么在设计时就要以面向OOP编程的思想来考虑软件的类结构,这个销售汽车转载 2021-03-08 22:05:51 · 173 阅读 · 0 评论 -
23种设计模式汇总整理
本文转载 https://blog.csdn.net/jason0539/article/details/44956775前言设计模式的六大原则:1、单一职责原则2、里氏替换原则(Liskov Substitution Principle)3、依赖倒转原则(Dependence Inversion Principle)4、接口隔离原则(Interface Segregation Principle)5、迪米特法则(最少知道原则)(Demeter Principle)6、合成复用原则(Composite R转载 2021-03-08 21:42:47 · 120 阅读 · 0 评论