编程范式中提到的设计模式:
Creational Patterns(创建型模式),如Singleton, Factory,AbstractFactory模式等;
Behavioral Patterns(行为模式),如Observer,Vistor,Mediator模式等;
Structural Pattern(结构型模式),如Bridge,Composite,Facade模式等;

随着Solidity大量的去中心化应用的普及,也形成了一些设计模式:

1、合约自毁(Contract Self Destruction)

场景:
当我们的贷款合同在还款结束之后,需要进行销毁时,合约销毁后:
1)合约相关交易(Transaction)会失败,即终止
2)对合约地址发起的转账资金会消失
所以指向被销毁合约的引用必须进行删除,而且在发送资金时,最好先调用Get()判断合约存在再进行发送

pragma solidity ^0.4.24;contract SelfDestructionContract {public address owner;public string someValue;// 定义modifier函数修改器modifier ownerRestricted{//合约调用者与构造者是同一人require(owner==msg.sender);}// 构造函数function SelfDestructionContract() {owner=msg.sender;}//apifunction setSomeValue(string value){someValue=value;}// 使用定义的函数修改器ownerRestricted来限制函数只能由合约拥有者调用 function destoryContract()ownerRestricted{suicide(owner);}
}

工厂合约模式(Factory Contract)

场景:
把子合约看做是资产,子合约进行相应的逻辑,比如买卖汽车时(不同汽车有折损或者收藏价值),可以对资产产权进行变换。在出售资产时,必须给函数加上payable修饰符。

pragma solidity ^0.4.24;contract AutoShop{address[] autoAssets;function createChildContract() public payable{address newAutoAsset = new AutoAsset(msg.sender);autoAssets.push(newAutoAsset);}function getDeployedChildContracts() public view returns(address[]){return autoAssets;}}contract AutoAsset {address public owner;function AutoAsset(address _owner) {owner = _owner;    }
}

区块链开发之智能合约设计模式相关推荐

  1. 分享实录|区块链技术与智能合约入门(开发实例)

    2019独角兽企业重金招聘Python工程师标准>>> 1 什么是区块链 1.1白话讲解区块链 现在区块链特别火,可能大家都听说过区块链,听说过比特币,那到底什么是区块链? 前几天和 ...

  2. 【区块链DAPP】智能合约概述

    智能合约概述 智能合约是运行在区块链公链上的一种代码,该代码由Solidity编写,并通过区块链的智能合约虚拟机来执行,以达到对区块链编程的目标.可以将区块链公联理解为操作系统,Solidity是编写 ...

  3. 区块链中的智能合约是什么?

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. "智能合约是一套以数字形式定义的承诺,承诺控制着数字资产并包含了合约参与者约定的权利和义务,由计算机系统自动执 ...

  4. 行走在区块链上的智能合约

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 我和你打一个赌,我赌明天是雨天,你赌是晴天,赌注100大洋.假设明天是晴天,然后你跑过来管我要100大洋的赌金,我装疯卖 ...

  5. tron区块链php对接,Tron区块链技术 - Tron智能合约概述

    Tron区块链技术:多年来,  以太坊  一直是分散世界中开发智能合约的主流平台之一.然而,最近TRON作为一个准备面对以太坊的竞争平台在分散网络中崛起. TRON区块链技术是什么? Tron区块链是 ...

  6. hyperledger部署java_Hyperledger Fabric(超级账本) Java 开发区块链 部署运行智能合约

    部署并运行 Java 链代码示例 您已经定义并启动了本地区块链网络,而且已构建 Java shim 客户端 JAR 并安装到本地 Maven 存储库中,现在已准备好在之前下载的 Hyperledger ...

  7. 区块链技术c java_区块链技术:智能合约入门

    什么是智能合约 一个智能合约是一套以数字形式定义的承诺(promises) ,包括合约参与方可以在上面执行这些承诺的协议.一个合约由一组代码(合约的函数)和数据(合约的状态)组成,并且运行在以太坊虚拟 ...

  8. 区块链技术:智能合约入门

    什么是智能合约 一个智能合约是一套以数字形式定义的承诺(promises) ,包括合约参与方可以在上面执行这些承诺的协议.一个合约由一组代码(合约的函数)和数据(合约的状态)组成,并且运行在以太坊虚拟 ...

  9. 区块链: 编译发布智能合约

    什么是智能合约?? 智能合约与平时的代码其实没有什么区别,只是运行于一个以太坊这样的分布式平台上而已.这个运行的平台,赋予了这些代码不可变,确定性,分布式和可自校验状态等特点.代码运行过程中状态的存储 ...

  10. 【区块链Solidity】智能合约与Solidity介绍

    目录 智能合约 Solidity语言简介 Solidity语言特性 智能合约 智能合约的英文是Smart Contract 最早是尼克丶萨博在1995年就提出了智能合约的概念~就是将法律条文写成可执行 ...

最新文章

  1. 2021年大数据Spark(四十二):SparkStreaming的Kafka快速回顾与整合说明
  2. 基于点云描述子的立体视觉里程计快速鲁棒的位置识别方法
  3. 中国高中生近视率高达81%,眼科专家:源头在小学阶段
  4. [Elasticsearch] 全文搜索 (一) - 基础概念和match查询
  5. IsPostBack原理
  6. ots在线考计算机的word,ots在线考试系统1(OTS online examination system 1).doc
  7. Android中传递对象的三种方法
  8. 如何证明服从卡方分布_概率论中的谁会证明(n-1)s^2/σ^2服从卡方分布
  9. Asp.Net 设计模式 之 “简单工厂”模式
  10. 51nod 1489 蜥蜴和地下室
  11. Python的单链表实现
  12. python的优点有哪些-Python为何这么火,究竟有哪些优势?
  13. 英文课程名称 c语言程序设计,课程名称C语言程序设计I.doc
  14. 在线留痕阅卷系统功能说明及其演示
  15. Threejs实现天空盒,全景场景,地面草地
  16. mysql随机生成 姓名+电话
  17. OpenCV4--->基础函数,与操作
  18. 房东要涨800房租,我用Python抓取帝都几万套房源信息,主动涨了1000。
  19. 《Java解惑》系列——02字符谜题——谜题11:最后的笑声(字符、字符串连接操作)
  20. html如何设置hr 标签的线条粗细,设置hr标签的粗细

热门文章

  1. 【DSP】DSP2833x.h中定义的指令EINT、DINT、ERTM、DRTM、EALLOW、EDIS、ESTOP0的含义
  2. git 代码行数统计
  3. 三个技巧教你怎么裁剪视频画面,手残党也能掌握
  4. Matlab图像处理(入门笔记)
  5. springboot2.0和mysql8的时间问题
  6. java微信学生考勤小程序前台vue和后台(考勤,请假,校园新闻,导出,地图等)(需要使用的软件)打包源码及安装视频+功能文档
  7. 逻辑学学习.14 --- 谓词逻辑(六):数量量词和摹状词
  8. 全自动IC半导体MCU芯片烧录flash大批量生产出货的解决方案分析
  9. 怀旧服服务器一般什么时候维护,魔兽世界怀旧服9月16日重启维护结束时间 9.16怀旧服登录不了游戏解决方法_蚕豆网新闻...
  10. 成都理工大学计算机类中外合办,成都理工大学代码