博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于抽象工厂的一些理解
阅读量:6948 次
发布时间:2019-06-27

本文共 1550 字,大约阅读时间需要 5 分钟。

抽象工厂最大限度的让代码重复使用,其实也是设计模式中的模板模式,好了至此我们学习了两种了,一种是接口,一种是抽象工厂,二者结合起来更好,关于前面的代理,数据集扩展还有lanm表达式的一些应用,代理,事件,等应用场合,打码简洁性等,我花一段时间来让自己的知识更加系统化,也算对以前知识的一些总结,和自己认为一些比较重要的例子

 

看代码

 

public class RowGenericFactroy
{ public T Create(string typename) { if(string.IsNullOrEmpty(typename)) throw new ArgumentNullException("yupename"); return (T)Activator.CreateInstance(Type.GetType(typename)); } }
///     ///这是 RowGenericFactroyTest 的测试类,旨在    ///包含所有 RowGenericFactroyTest 单元测试    ///    [TestClass()]    public class RowGenericFactroyTest    {        interface Iproduct        {        }        class Conproduct : Iproduct        {        }        interface IUser        {        }        class ConUerA : IUser         {                }        [TestMethod]        public void Test()        {            var typename = typeof(Conproduct).AssemblyQualifiedName;            Trace.WriteLine(typename);            var product = new RowGenericFactroy
().Create(typename); Assert.IsNotNull(product); Assert.IsInstanceOfType(product, typeof(Conproduct)); Assert.IsTrue(product is Iproduct); var user = new RowGenericFactroy
().Create(typeof(ConUerA).AssemblyQualifiedName); Assert.IsNotNull(user); Assert.IsInstanceOfType(user, typeof(ConUerA)); Assert.IsTrue(user is IUser); } }

以上是调用,怎么样,这个也符合里氏替换原则,依赖抽象而非具体,这样就省略UserFactroy和ProductFactroy达到公用的目的,实际应用中一般根据配置文件获取相应类型名称

转载地址:http://rzenl.baihongyu.com/

你可能感兴趣的文章
linux下ElasticSearch安装及问题
查看>>
2019测试指南-web应用程序安全测试(二)指纹Web应用程序
查看>>
Quartus Prime 下载程序到FPGA流程
查看>>
php instanceof 运算符
查看>>
5月3日云栖精选夜读丨寒武纪重磅发布首款AI云芯片,阿里专家告诉你必须注意的Java编程细节...
查看>>
机器学习从业人员到底做什么?
查看>>
MyBatis mapper.xml处理sql中的 大于,小于,大于等于,小于等于
查看>>
java 受检异常和非受检异常
查看>>
GC垃圾回收机制
查看>>
rsync通过服务同步、linux系统日志
查看>>
Redlock:Redis分布式锁最牛逼的实现
查看>>
一篇文章带你解析,乐观锁与悲观锁的优缺点
查看>>
阿里云如何打破Oracle迁移上云的壁垒
查看>>
小技巧:如何突破某些网站只能登陆后才能进行文字拷贝的限制
查看>>
Spring Boot教程(十八)使用Spring StateMachine框架实现状态机
查看>>
区块链如何应用于保险行业
查看>>
自然语言处理工具HanLP被收录中国大数据产业发展的创新技术新书《数据之翼》...
查看>>
五周第三次课(4月20日)8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重定向...
查看>>
Dubbo Mesh 在闲鱼生产环境中的落地实践
查看>>
用idea制作Javaweb程序遇到的过程
查看>>