c# 2.0 Factory的实现

用C#的范型建立一个Factory模式的模板:
None.gifpublic struct FactoryConverter<A, B>
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif        
public static implicit operator A(FactoryConverter<A, B> conv)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
return Activator.CreateInstance<A>();
ExpandedSubBlockEnd.gif        }

InBlock.gif
InBlock.gif        
public static implicit operator B(FactoryConverter<A, B> conv)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
return Activator.CreateInstance<B>();
ExpandedSubBlockEnd.gif        }

ExpandedBlockEnd.gif    }

None.gif
None.gif    
public class Factory<A, B>
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif{
InBlock.gif        
public FactoryConverter<A, B> Create()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
return new FactoryConverter<A, B>();
ExpandedSubBlockEnd.gif        }

ExpandedBlockEnd.gif    }
使用的时候是这样的:
None.gifFactory<Foo, Bar> f = new Factory<Foo, Bar>();
None.gifFoo foo 
= f.Create();
None.gifBar bar 
= f.Create();
编译器会做类型安全检测.

转载于:https://www.cnblogs.com/rexz/archive/2006/07/09/446301.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264910.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

https网络编程——openssl安装(两个软链接库libssl、libcrypto)、openssl命令行方式实现CA和证书、介绍SSH

参考&#xff1a;openssl安装方式&#xff08;Ubuntu下&#xff09; 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/115454254?spm1001.2014.3001.5502 目录官方网站1、解压2、编译安装3、生成软连接(两个库)4、测试这是B站openssl视频教程&#xff1a;https…

[spring boot] 01 环境搭建 - 配置java和mvn环境

主要内容&#xff1a; 一、IntelliJ IDEA 安装 二、maven 安装 三、设置IDEA和mvn的关系 一、IntelliJ IDEA 安装 1.1. 下载编辑器&#xff1a;前往下载 (Ultimate和Community都是可以的&#xff0c;我一般下载前一个) 1.2. 注册码记得搜索 二、maven 安装 2.1. 下载mvn&#x…

https网络编程——HTTPS简介以及SSL协议详解

参考;HTTPS简介以及SSL协议详解 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/108209248?spm1001.2014.3001.5502 目录1.HTTPS简介2.SSL协议介绍2.1、SSL协议的功能2.2、SSL协议在协议栈的位置2.3、SSL协议组成2.3.1、纪录协议的功能2.3.2、SSL记录协议的示…

D3---01基础的柱状图制作(转)

---文章转自 http://d3.decembercafe.org/index.html &#xff0c;Created by 十二月咖啡馆。 一个完整的柱形图包含三部分&#xff1a;矩形、文字、坐标轴。 首先要布置一个大小合适的 SVG 画布&#xff1a; 添加 SVG 画布 //画布大小 var width 400; var height 400;//在…

https网络编程——对称加密、非对称加密、单项加密的简单介绍

参考&#xff1a;对称加密、非对称加密、单项加密的简单介绍 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/108213426?spm1001.2014.3001.5502 目录1、对称加密1.1、什么是对称加密&#xff1f;1.2、对称加密的优缺点是什么&#xff1f;1.3、常见的对称加密…

dnn中个性化服务的使用

1.什么是profiles(个性化服务)Profiles是系统面向用户提供的灵活性的个体信息的容器&#xff0c;一个用户的Profile可以使以下一种或多种的集合&#xff1a; &#xff08;1&#xff09; 简单的字符串或其他基础类型 &#xff08;2&#xff09; 一个序列化的实体 &#xff08;3&…

洛谷P1073 Tarjan + 拓扑排序 // 构造分层图

https://www.luogu.org/problemnew/show/P1073 C国有 n n个大城市和 mm 条道路&#xff0c;每条道路连接这 nn个城市中的某两个城市。任意两个城市之间最多只有一条道路直接相连。这 mm 条道路中有一部分为单向通行的道路&#xff0c;一部分为双向通行的道路&#xff0c;双向通…

https网络编程——SSL的加密和解密过程

参考&#xff1a;SSL的加密和解密过程 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/108214105?spm1001.2014.3001.5502 目录现在的加密/解密技术主要有三种&#xff1a;对称加密&#xff0c;非对称加密&#xff0c;和单向加密加密解密的流程图现在的加密/解…

IIS网站的权限设置问题

2019独角兽企业重金招聘Python工程师标准>>> IIS中的权限与NTFS权限设置的区别&#xff1a; 当浏览器访问被IIS禁止的页面时&#xff0c;返回404错误页面 但浏览器访问被NTFS禁止的文件时&#xff0c;提示用户登录界面 转载于:https://my.oschina.net/changeme/blog…

关于.Net2.0下配置架构的使用

上次用到配置文件,就花了一些时间研究了一下.Net2.0下的配置文件架构,当时感觉确实很强大,完善,但看的有些头晕.迷迷糊糊把实现了要求,就没有再深入研究.最近,想在配置文件里实现一个复杂的配置,多层次嵌套的配置文件,再把.Net中的配置文档研究了一下&#xff0c;经过这两次的研…

煲仔

湖南的煲仔似乎在我毕业工作的那年侵占了大街小巷&#xff0c;满街的煲仔店向外热滋滋的喷着香味&#xff0c;便宜又好味。那几年在外的觅食&#xff0c;除了常德津市牛肉米饭外&#xff0c;煲仔似乎是我唯一的选择。将米放入煲内&#xff0c;加水在火上煮至半熟&#xff0c;再…

https网络编程——中继(负载均衡)工作原理

参考&#xff1a;中继&#xff08;负载均衡&#xff09;工作原理 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/108217055?spm1001.2014.3001.5502 中继&#xff08;负载均衡&#xff09;工作原理 在我们当前社会&#xff0c;比如我们上某宝&#xff0c;某…

全套支付宝系统架构(内部架构图)【收藏】

据说这是对支付宝系统体系最全最强解析&#xff0c;推荐收藏学习&#xff01; 转载于:https://www.cnblogs.com/SH-xuliang/p/10340745.html

iOS学习之iOS沙盒(sandbox)机制和文件操作之NSFileManager

2019独角兽企业重金招聘Python工程师标准>>> 1、在Documents里创建目录 创建一个叫test的目录,先找到Documents的目录&#xff0c; [cpp] view plain copy NSArray *paths NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); …

https网络编程——使用openssl库自建根证书

参考&#xff1a;如何自建根证书&#xff1f;使用openssl库自建根证书带图详解 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/108217572?spm1001.2014.3001.5502 目录根证书的普通用途自建根证书步骤1、创建一个目录&#xff0c;存放所有证书有关资料2、进入…

angular接口传参

1、service文件 创建xxx.service.ts文件 import { Injectable, Inject } from angular/core;import { Observable } from rxjs;import { map } from rxjs/operators;import { HttpClient } from angular/common/http;Injectable({ providedIn: root})export class ErrorCond…

https网络编程——如何建立利用根证书(凭证)签发建立中继证书(凭证)详解

参考&#xff1a;如何建立利用根证书&#xff08;凭证&#xff09;签发建立中继证书&#xff08;凭证&#xff09;详解 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/108221568?spm1001.2014.3001.5502 目录在建立中继之前需要自建根证书建立根证书的具体步…

NURBS曲线与曲面

B样条方法在表示与设计自由型曲线曲面形状时显示了强大的威力&#xff0c;然而在表示与设计初等曲线曲面时时却遇到了麻烦。因为B样条曲线包括其特例的Bezier曲线都不能精确表示出抛物线外的二次曲线&#xff0c;B样条曲面包括其特例的Bezier曲面都不能精确表示出抛物面外的二次…

https网络编程——如何利用中继证书(凭证)建立服务器证书

参考&#xff1a;如何利用中继证书&#xff08;凭证&#xff09;建立服务器证书 地址&#xff1a;https://qingmu.blog.csdn.net/article/details/108225569?spm1001.2014.3001.5502 目录建立服务器证书的前提是要建立中继证书建立服务器证书的具体步骤1、建立一个目录&#x…

上传图片

2019独角兽企业重金招聘Python工程师标准>>> private File imageFile;// 上传文件名称private String imageFileFileName;// 上传文件类型private String imageFileContextType; InputStream is new FileInputStream(imageFile);String suffixName imageFileFileN…