教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

Java中23种设计模式

来源:网络收集 时间:2026-01-23
导读: 设计模式以及例题精讲 Java中23种设计模式 目录 1. 设计模式 3 1.1 创建型模式 4 1.1.1 工厂方法 4 1.1.2 抽象工厂 6 1.1.3 建造者模式 10 1.1.4 单态模式 13 1.1.5 原型模式 15 1.2 结构型模式 17 1.2.1 适配器模式 17 1.2.2 桥接模式 19 1.2.3 组合模式 23

设计模式以及例题精讲

Java中23种设计模式

目录

1. 设计模式 3

1.1 创建型模式 4

1.1.1 工厂方法 4

1.1.2 抽象工厂 6

1.1.3 建造者模式 10

1.1.4 单态模式 13

1.1.5 原型模式 15

1.2 结构型模式 17

1.2.1 适配器模式 17

1.2.2 桥接模式 19

1.2.3 组合模式 23

1.2.4 装饰模式 26

1.2.5 外观模式 29

1.2.6 享元模式 32

1.2.7 代理模式 34

1.3 行为型模式 37

1.3.1 责任链模式 37

1.3.2 命令模式 40

1.3.3 解释器模式 43

1.3.4 迭代器模式 45

1.3.5 中介者模式 49

1.3.6 备忘录模式 52

1.3.7 观察者模式 54

1.3.8 状态模式 58

1.3.9 策略模式 61

1.3.10 模板方法 63

1.3.11 访问者模式 65

1. 设计模式(超级详细)

1.1 创建型模式

AbstractFactory ( 抽象工厂 )

FactoryMethod ( 工厂方法 )

Singleton ( 单态模式 )

Builder ( 建造者模式 )

Protot*pe * 原型模式 )

1.1.1 工厂方法

*义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例*延迟到其子类。

适用性

1.当一个类不知道它所必须创建的对象的类的时候。

设计模式以及例题精讲

2.当一个类希望由它的子类来指定它所创建的对象的时候。

3.当*将创建对象的职责委托给多个帮助*类中的某一个,并且*希望将哪一个帮助子类是代理者这一信息局部化的时候。

参与者

1.Product

定义工厂方法所创建的对象的接口。

2.ConcreteProduct

实现Product接口。

3.Creator

声明工厂方法,该方法返回一个Product类型的对象*

Creator也可以定义一个工厂方法的缺省实现,它返回一个缺省的ConcreteProduct对象。

可以调用工厂方法以创建一个Product对象。

4.ConcreteCreator

重定义工厂方法以返回一个ConcreteProduct实例。

类图

例子

*roduct

public interface Work {

void doWork();

}

ConcreteProduct

public class StudentWork implements Work {

public void doWork() {

System.out.println("学生*作业!");

}

}

public class TeacherWork implements Work {

public void doWork() {

设计模式以及例题精讲

System.out.println("老师审批作业!");

}

}

Creator

public interface IWorkFactory {

Work get*ork();

}

Concre*eCreator

pu*lic class StudentWorkFactory implements IWorkFactory {

public Work getWork() {

*eturn new StudentWork();

}

}

public class TeacherWorkFactory implements IWorkFactory {

public Work getWork() {

return new TeacherWork();

}

}

Test

public class Test {

public static void m*in(Strin*[] args) {

IWorkFactory studentWorkFactory = new StudentWorkFactory();

studentWorkFactory.getWork().d*Work();

IWorkFactory teacherWorkFactory * new TeacherWorkFactory();

teacherWorkFactory.g*tWork().*oWork();

}

}

result

学生做作业!

老师审批作业!

设计模式以及例题精讲

1.1.2 抽象工厂

提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 适用性

1.一个系统要独立于它的*品的创建、组合和表示时。

2.一个系统要由多个产品系列中的一个来配置时。

3.当你要强调一系列相关的产品对象的设计以便进行联合使用时*

4*当你提供一个产品类库,而只想显示它们*接口而不是实现时。

参与者

1.Ab*tractFactory

声明一个创建抽象产品对象的操作接口。

2.ConcreteFactory

实现创建具体产品对象的操作。

*.AbstractProduct

为一类产品对象声明一个接口。

4.ConcreteProdu*t

定义一个将被相应的具体工厂创建的产品*象。

实现*bstractProduct接口。

5.Client

仅使用由AbstractFactory和AbstractProduc*类声明的接口

类图

例子

*bstractFactory

public interface IAn*malFactory {

ICat createCat();

IDog cre*teDog();

}

ConcreteFactory

p*blic class BlackAnimalFactory implem*nts IAnimalFactory {

设计模式以及例题精讲

public ICat createCat() {

retur* new BlackCat();

}

public IDog createDog() {

return new BlackDog();

}

}

public class WhiteAnimalFac*ory imp*ements IAnimalFactory {

public ICat createCat() {

return new WhiteCat();

}

public IDog cre*teDog() {

return new WhiteDog();

}

}

Abstrac*Product

public interface ICat {

void eat();

}

public interface IDog {

void eat();

}

Concrete*roduct

public class Black*at implements ICat {

public void eat() {

System.out.println("The bl*ck cat is eating!");

}

}

public class WhiteCat implements *Cat {

设计模式以及例题精讲

public void eat() {

Sy*tem.out.prin*ln("The w*ite cat is eating!*);

}

}

public class BlackDog implements IDog {

public void eat() {

System.out.println("The black dog is eating");

}

}

public class WhiteDog implements IDog {

public void eat() {

System.out.println("The white dog is eat*ng!");

}

}

Client

public static void main(String[] args) {

IAnimalFactory blackAnimalFa*tory = new BlackAnimalFactory();

ICat blackCat = blackAnimalFactory.createCat();

blackCat.eat();

IDog blackD*g = blackAnimalFactory.createDog();

blackDog.eat();

IAnimalFactory whiteAnimalF*ctory = new WhiteAnima …… 此处隐藏:8116字,全部文档内容请下载后查看。喜欢就下载吧 ……

Java中23种设计模式.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/1335318.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)