首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
软件与程序人生
›
DevOps与敏捷开发
›
【游戏筹划模式】【运动型模式】子类沙盒 ...
返回列表
发新帖
【游戏筹划模式】【运动型模式】子类沙盒
[复制链接]
发表于 2025-12-24 12:02:06
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
子类沙盒
一个基类界说了一个抽象的沙盒方法和一些预界说的利用聚集。设为受掩护状态确保它们仅供子类使用。每个派生出的沙盒子类根据父类提供的利用来实现沙盒函数
简单来说,就是在基类封装好很多方法,然后再在子类中,去组合这些方法。
实用景象
假如说你有一个基类,内里有很多方法,然后你有很多子类,这些子类都必要用到这些方法,但是每个子类用到的方法不一样,那么就可以使用子类沙盒模式。
实际例子
你想实现邪术体系,有很多种邪术,每种邪术都有自己的实现,但是每种邪术都必要用到一些根本的方法,比如说开释邪术,斲丧邪术,这些方法都是一样的,那么就可以使用子类沙盒模式。
代码
示例
class BaseSandbox {
protected:
void operation1() {
// Perform operation 1
}
void operation2() {
// Perform operation 2
}
// Add more protected operations as needed
};
class DerivedSandbox : public BaseSandbox {
public:
void sandboxFunction() {
operation1();
operation2();
// Call other operations from the base class
}
};
int main() {
DerivedSandbox sandbox;
sandbox.sandboxFunction();
return 0;
}
复制
代码
标题
通过将耦合转交给基类的方法,让子类仅与基类耦合。
假如随着必要添加的方法变多,基类将变得越来越巨大。
必要提供什么利用
假如利用仅仅只被少数子类使用,那么不必将其放在基类中。
假如调用的方法并不改变状态,那么这个耦合是“
安全
”的。假如改变了状态,则要思量由基类去提供。
用辅助类再次封装方法
用辅助类对同范例的方法举行二次封装,然后在基类中提供这个辅助类的实例。如许可以镌汰基类的方法数目。
基类得到其所需状态的方法
假如基类必要访问外部实例,而且盼望保持对子类隐蔽(比如例子体系),有哪些方法可以转达这些实例呢?
构造函数转达
通过构造函数在子类构造的时间转达实例
缺点:子类必须知道这个实例是什么,如许就会袒露实例的细节
构造初始化方法转达
使用一个初始化方法来转达实例
缺点:子类必须调用这个初始化方法
状态静态化
把必要的实例变成静态变量,如许就可以在基类中直接访问
缺点:缺点就是它是静态的,只有一个实例,不实用于多个实例的情况
服务定位器
使用一个服务定位器来转达实例
缺点:服务定位器是全局的,大概会导致全局状态的标题,而且比力复杂
总结
子类沙盒是一种将利用封装在基类中,然后在子类中组合这些利用的方法。如许可以镌汰子类的耦合,但是也会导致基类变得巨大。可以通过辅助类再次封装方法,大概通过构造函数转达、构造初始化方法转达、状态静态化、服务定位器等方法来转达实例。
回复
使用道具
举报
返回列表
浏览过的版块
SAAS
物联网
人工智能
数据安全
王國慶
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表