当前位置: 首页 > news >正文

php做的网站怎么加密吉林网站建设司

php做的网站怎么加密,吉林网站建设司,网盘怎么做电影网站,wordpress 评分点评主题文章目录 委托自定义委托模板方法#xff08;工厂模式回调(callback)函数#xff08;观察者模式多播#xff08;multicast#xff09;委托委托的高级使用使用接口 重构 模板方法代码注意参考 委托 委托#xff08;delegate#xff09;是一种类型#xff0c;定义了一种方… 文章目录 委托自定义委托模板方法工厂模式回调(callback)函数观察者模式多播multicast委托委托的高级使用使用接口 重构 模板方法代码注意参考 委托 委托delegate是一种类型定义了一种方法签名因此可以将方法作为参数进行传递。 委托类似于 C 中的函数指针但比函数指针更加安全和灵活。 使用委托可以实现事件处理、回调函数等功能。 建议使用接口取代委托 Action 无参无返回 Func 有参有返回 Calaculator calaculator new Calaculator();// Actionnew Action(calaculator.Report).Invoke();// FuncFuncint, int, int func1 new Funcint, int, int(calaculator.Add);Funcint, int, int func2 new Funcint, int, int(calaculator.Sub);int x 100;int y 200;int z 0;// 可以省略invokez func1(x, y);Console.WriteLine(z);z func2.Invoke(x, y);Console.WriteLine(z);class Calaculator {public void Report(){Console.WriteLine(i have 3 methods);}public int Add(int a, int b){return a b;}public int Sub(int a, int b){return a - b;} }自定义委托 // 与类平级放到类中属于嵌套 public delegate double Calc(double x,double y); internal class Program {static void Main(string[] args){Calaculator calaculator new Calaculator();Calc calc1 new Calc(calaculator.Add1);Calc calc2 new Calc(calaculator.Mul);double x 100;double y 100;double z 0;z calc1.Invoke(x, y);Console.WriteLine(z);z calc2.Invoke(x, y);Console.WriteLine(z);} }模板方法工厂模式 ”借用“指定的外部方法来产生结果 提高对代码的复用 ProductFactory() 只需要扩展这个方法其他方法都不用动 static void Main(string[] args){ProductFactory productFactory new ProductFactory();WrapFactory wrapFactory new WrapFactory();FuncProduct func1 new FuncProduct(productFactory.MakeToy);FuncProduct func2 new FuncProduct(productFactory.MakePizza);Box box1 wrapFactory.WrapProduct(func1);Box box2 wrapFactory.WrapProduct(func2);Console.WriteLine(box1.Product.Name);Console.WriteLine(box2.Product.Name);} }class Product() { public string Name { get; set; } }class Box() { public Product Product { get; set; } }class WrapFactory {public Box WrapProduct(FuncProduct getProduct) {Box box new Box();// invoke 执行拿到产品不用管是什么产品Product product getProduct.Invoke();box.Product product;return box;} }class ProductFactory() {public Product MakePizza() {Product product new Product();product.Name Pizza;return product;}public Product MakeToy() {Product product new Product();product.Name Toy;return product;} }回调(callback)函数观察者模式 调用指定的外部方法 在模板方法基础上添加 internal class Program {static void Main(string[] args){ProductFactory productFactory new ProductFactory();WrapFactory wrapFactory new WrapFactory();FuncProduct func1 new FuncProduct(productFactory.MakeToy);FuncProduct func2 new FuncProduct(productFactory.MakePizza);Logger logger new Logger();ActionProduct action new ActionProduct(logger.Log);Box box1 wrapFactory.WrapProduct(func1,action);Box box2 wrapFactory.WrapProduct(func2,action);Console.WriteLine(box1.Product.Name);Console.WriteLine(box2.Product.Name);} }class Logger {public void Log(Product product) {//DateTime.UtcNow 无时区时间 ; DateTime.Now 有时区Console.WriteLine(Product {0} created at {1}.Price is {2},product.Name,DateTime.UtcNow,product.Price);} }class Product() { public string Name { get; set; }public double Price{ get; set; } }class Box() { public Product Product { get; set; } }class WrapFactory {public Box WrapProduct(FuncProduct getProduct,ActionProduct logCallback) {Box box new Box();Product product getProduct.Invoke();// 回调函数触发某种条件就自动执行if (product.Price 50) {logCallback(product);}box.Product product;return box;} }class ProductFactory() {public Product MakePizza() {Product product new Product();product.Name Pizza;product.Price 12;return product;}public Product MakeToy() {Product product new Product();product.Name Toy;product.Price120;return product;} }多播multicast委托 委托的高级使用 使用接口 重构 模板方法代码 直接用接口不使用委托。 方法形参为接口类继承接口new不同的类传进同个方法 internal class Program {static void Main(string[] args){WrapFactory wrapFactory new WrapFactory();Logger logger new Logger();ActionProduct action new ActionProduct(logger.Log);Box box1 wrapFactory.WrapProduct(new PizzaFactory());Box box2 wrapFactory.WrapProduct(new ToyCarFactory());Console.WriteLine(box1.Product.Name);Console.WriteLine(box2.Product.Name);} }interface IProductFactory {Product Make(); }class PizzaFactory : IProductFactory {public Product Make(){Product product new Product();product.Name Pizza;product.Price 12;return product;} }class ToyCarFactory : IProductFactory {public Product Make(){Product product new Product();product.Name Toy;product.Price 120;return product;} } class WrapFactory {public Box WrapProduct(IProductFactory productFactory) {Box box new Box();Product product productFactory.Make();box.Product product;return box;} } }注意 委托 参考 刘铁猛——C#
http://www.hkea.cn/news/14323808/

相关文章:

  • 网站怎么做能让人搜到苏州做网站推广哪家好
  • 团购网站app制作自己制作广告
  • 建设厅网站如何查询企业信息安联建设集团股份公司网站
  • 科技建筑公司网站网站搭建免费官网
  • 双线网站开发公司商铺租金资金回笼慢的原因
  • 经典的jq查询网站网站维护提示怎么做
  • 建站行业解决方案足球比赛直播 视频直播
  • 网站备案号官网uc投放广告网站要自己做吗
  • 北京做网站哪个好做公众号首图的设计网站
  • 网站开发和软件开发哪个好开广告店需要什么技术
  • 专业网站建设服务公司哪家好域名防红跳转网址生成
  • html 单页网站以前可以做视频的网站
  • 杭州餐饮 网站建设网站域名怎么申请
  • 网站建设工作流程图桂电做网站的毕设容易过嘛
  • 深圳做网站的公司的区域关于做电商网站导流项目
  • 网站开发怎么确定价格手机网站焦点图代码
  • 个人网站样式wordpress怎么建商场
  • 网站营销做的好的律师什么网站做淘宝素材比较好
  • cad做彩图那个网站应用好用聚名网账号购买
  • 物流公司网站建设方案怎么自己在电脑上做网站
  • 百年建筑网优化网站佛山厂商
  • 企业网站制作素材网站建立要多少钱
  • 网站建设都是需要什么做网站和做app哪个容易
  • 网站建设 投资预算怎么建立个人网站
  • 车陂网站建设无锡设计公司排名
  • 360浏览器怎么加入可信站点wordpress 英文改中文
  • 网盘搜索网站怎么做万能浏览器app
  • 长沙市建设网站网站备案包括空间内容吗
  • 重庆网站建设重庆网站制作天津市工程建设信息系统
  • 包头市建设厅官方网站wordpress更换网站域名