首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >设计模式:单例模式(Singleton)(1)

设计模式:单例模式(Singleton)(1)

作者头像
firstxinjie
发布2025-04-26 21:13:48
发布2025-04-26 21:13:48
10400
代码可运行
举报
文章被收录于专栏:X#(XSharp)X#(XSharp)
运行总次数:0
代码可运行

单例模式应该是 VFP 开发者最熟悉的一种设计模式。

VFP 中的系统变量 _Screen 和 _vfp 就是运行时内置的单例对象。

该模式的核心就是在一个应用程序生命周期中仅存在唯一的类实例。因此,在 VFP 中,最简单的实现方式就是在 VFP 主程序中存在类似下面的代码:

代码语言:javascript
代码运行次数:0
运行
复制
Public goSingleton
m.goSingleton = CreateObject("Custom")

但是,还有一个更好的方式:

代码语言:javascript
代码运行次数:0
运行
复制
_Screen.AddProperty("oSingleton", CreateObject("Custom"))

由于 VFP 并非现代OOP编程语言,因此,必须依据所创建的方式在类定义中予以保证所创建的类的类实例在整个应用程序周期中仅创建一个:

代码语言:javascript
代码运行次数:0
运行
复制
Define Class Singleton As Custom
	*!* 属性定义

	Procedure Init()
		If Vartype(_Screen.oSingleton) = "O"
			Return .F.
		Endif
	Endproc

	*!* 其他事件/方法定义
Enddefine

尽管在 VFP 中该设计模式看上去比较简单,但是在 .NET 平台下,它并不像 VFP 中看上去的那样简单。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-04-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 xinjie的VFP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档