译文出自:登链翻译计划
译者:翻译小组
校对:Tiny熊
欢迎来到学习Solidity系列的另一部分。在上一篇文章,我们讨论了如何从智能合约中创建另一个智能合约。今天,我们将研究这种情况下的典型用例。
什么是工厂模式?
工厂模式的想法是拥有一个合约(工厂),该合约将承担创建其他合约的任务。在基于类的编程中,此模式的主要动机来自单一职责原则(一个类不需要知道如何创建其他类的实例),并且该模式为构造函数提供了一种抽象。
UMLdiagramforfactorymethod
图片来自Wikipedia.
ApeCoin DAO发起新提案AIP-274拟为支持项目提供专属徽标:金色财经报道,ApeCoin DAO发起新提案AIP-274拟为支持项目提供专属徽标,旨在通过明显标记和认可专门与ApeCoin合作的举措以提高ApeCoin 的实用性和认可度,据悉该提案给出了由 ApeCoin 提供支持的四个不同徽标,获得支持的生态项目可以使用这些徽标来展示与ApeCoin目标一致性,增强在生态系统中的认知和使用并鼓励更多平台采用 ApeCoin。根据Snapshot数据显示,该提案已开启投票并将于7月6日结束,当前赞成票比例达到99.97%。[2023/7/2 22:13:34]
为什么要在Solidity中使用工厂模式?
范一飞:数字人民币智能合约要坚持开放包容、公平竞争,避免形成新的信息壁垒:金色财经消息,中国人民银行党委委员、副行长范一飞表示,数字人民币智能合约要坚持开放包容、公平竞争,要在央行中心化管理和“双层运营”架构的原则下统筹推进,避免形成新的信息壁垒。要广泛连接各类外部生态,确保在智能合约系统和外部系统、身份验证和合规性检查数据以及运行环境等方面实现互通,更高效地适应各行各业的实际需求。(金十)[2022/9/8 13:16:25]
在Solidity中,出于以下原因之一,你可能要使用工厂模式:
如果要创建同一合约的多个实例,并且正在寻找一种跟踪它们并简化管理的方法。```contractFactory{Childchildren;functioncreateChild(uintdata){Childchild=newChild(data);children
奢侈品牌菲拉格慕在纽约开设以太坊 NFT 展位:6月25日消息,奢侈时尚品牌菲拉格慕(Salvatore Ferragamo)周五在纽约市 Soho 区开设了一个以太坊 NFT 展位,艺术家Shxpir为该品牌的 NFT 创建特征和视觉元素,客户可以从其列表中创建和铸造自己的以太坊 NFT ,在 Ferragamo 展台上创建的所有 NFT 将对参观者免费,但总共只能铸造 256 个。Ferragamo 将其 NFT 展位称为“融合了Web3和实体零售世界”的“多感官”体验,并表示其关键目标是“让它成为一种内在的个人体验”。[2022/6/25 1:30:12]
}contractChild{uintdata;constructor(uint_data){data=_data;}}*节省部署成本:你可以先部署工厂,之后在使用时再来部署其他合约。*提高合约安全性(请参阅本文).##如何与已部署的智能合约进行交互在深入探讨如何实现工厂模式的细节之前,我想澄清一下我们与已部署的智能合约进行交互的方式。工厂模式是用来创建子合约的,并且我们可能希望调用它们的某些函数以更好地管理这些合约。调用部署的智能合约,需要做两件事:1.合约的ABI(提供有关函数签名的信息)。如果合约在同一个项目中。你可以使用import关键字将其导入。2.部署合约的地址。举个例子:
数字欧元总持有量或保持在1万亿至1.5万亿欧元之间:6月15日消息,欧洲央行执委帕内塔(Fabio Panetta)表示,初步分析表明,将数字欧元总持有量保持在1万亿至1.5万亿欧元之间,将避免对金融体系和货币政策产生负面影响。这个数量与当前流通中的纸币持有量相当。由于欧元区的人口目前约为3.4亿,这将允许人均持有约3,000至4,000数字欧元。由中央银行发行并可供所有人使用的数字货币将为支付市场提供稳定的锚,保持迄今为止为我们服务的公共货币和私人货币的共存。[2022/6/15 4:29:46]
contractA{addressbAddress;constructor(addressb){bAddress=b;}functioncallHello()externalviewreturns(stringmemory){Bb=B(bAddress);//转换地址为合约类型returnb
}contractB{stringgreeting="helloworld";functionsayHello()externalviewreturns(stringmemory){returngreeting;}}
在Remix中,首先部署合约B,然后复制其地址,并在部署时将其提供给A的构造函数。现在你可以调用`callHello()`函数,你将获得合约B的`sayHello()`函数的结果。##普通工厂模式在此模式下,我们创建具有创建子合约函数的工厂合约,并且可能还会添加其他函数来有效管理这些合约(例如,查找特定合约或禁用合约)。在create函数中,我们使用`new`关键字来部署子合约。
contractFactory{Childpublicchildren;uintdisabledCount;eventChildCreated(addresschildAddress,uintdata);functioncreateChild(uintdata)external{Childchild=newChild(data,children
functiongetChildren()externalviewreturns(Childmemory_children){_children=newChild(children
}}functiondisable(Childchild)external{children
}contractChild{uintdata;boolpublicisEnabled;uintpublicindex;constructor(uint_data,uint_index){data=_data;isEnabled=true;index=_index;}functiondisable()external{isEnabled=false;}}
```
本文来源于非小号媒体平台:
登链社区
现已在非小号资讯平台发布105篇作品,
非小号开放平台欢迎币圈作者入驻
入驻指南:
/apply_guide/
本文网址:
/news/9569964.html
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场
上一篇:
币安为何推出第三条链?这对BNB意味着什么?
为庆祝比特币突破2w美元,Gate.io于12月18日8:00—2021年1月1日8:00隆重上线网格交易每日赛赢20,000美金活动,连续14天单独进行比赛和排名,每日获奖名额30名.
1900/1/1 0:00:00从四小时图来看,大饼新高34661位置现价34560位置附近运行,KDJ三线向上发散运行,MACD绿色动能持续放量.
1900/1/1 0:00:002021年1月3日周日农历十一月二十摘要:比特币趋势怎么看?比特币还要继续涨吗?比特币会先跌一下吗?比特币还能涨多久?比特币为何要在深夜跳水3000点?比特币后市如何?是涨是跌?为何我一做多行情.
1900/1/1 0:00:002020年初,知名创投机构a16z举办了名为「加密创业学校」的在线视频课程,覆盖加密技术基础知识以及建立加密公司需要注意的事项.
1900/1/1 0:00:00为丰富直播互动,提升直播访谈价值,Gate.io直播间将定期邀请区块链行业从业者带来优质的内容知识,共同探讨行业发展.
1900/1/1 0:00:00Gate.ioUSDT永续合约混合保证金借款功能支持抵押币种0利息。通过混合保证金功能,用户可以抵押现货账户中的BTC,0利息借入最高100,000USDT来进行合约交易.
1900/1/1 0:00:00