装饰者模式---使用装饰者模式实现带日志记录功能的数据库命令执行类

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 装饰者模式:"在不改变对象的前提下,动态增加其功能",不希望改变原有的类,或采用创建子类的方法增加功能.在修饰了一个对象后,其接口不应该发生变化,否则这个对象不能被原有调用者使用,修饰失去了意义,装饰者与被装饰者具有相同的接口  using System;using System.Data;namespace cxyDecorator...{    public abstract  c
装饰者模式:"在不改变对象的前提下,动态增加其功能",不希望改变原有的类,或采用创建子类的方法增加功能.
在修饰了一个对象后,其接口不应该发生变化,否则这个对象不能被原有调用者使用,修饰失去了意义,装饰者与被装饰者具有相同的接口
 
using  System;
using  System.Data;

namespace  cxyDecorator
{
    
public abstract  class clsAbstractDb
    

        
public abstract string ConnectionString
        
{
            
get;
            
set;
        }


        
public abstract void Open();
        
public  abstract void Close();
        
public abstract DataTable ExecSql(string strSql);
        
public abstract void ExecNonQuery(string strSql);

    }



    
public class SqlDb:clsAbstractDb
    
{
        
private string m_constr;
        
public override  string ConnectionString
        
{
            
get
            
{
                
return m_constr;
            }

            
set
            
{
                m_constr
=value;
            }

        }


        
public override void Open()
        
{
            
//...
        }


        
public override void Close()
        
{
            
//..
        }


        
public override DataTable ExecSql(string strSql)
        
{
            
return new DataTable();
        }


        
public  override void ExecNonQuery(string strSql)
        
{
            
//....
        }

    }



    
public class LogDb:clsAbstractDb
    
{
        
private clsAbstractDb worker;
        
public LogDb(clsAbstractDb db)
        
{
            worker
=db;
        }


        
"clsAbstractDb"

        
private void Record(string eventstr)
        
{
            
//log it into somewhere;
        }
 

    }


    
public class DbFactory
    
{
         
        
public static clsAbstractDb CreateDb(string dbtype)
        
{
            clsAbstractDb test;
            test
=new SqlDb();
            
switch(dbtype)
            
{
                
case "sql"
                    
break;

                    
//                case "oracle":
                    
//                    test=new oracleDb();
                    
                    
//.....
                     
            }

            
return test;
        }


        
public static clsAbstractDb CreateLogDb(string dbtype)
        
{
            clsAbstractDb log;
            log
=new LogDb(CreateDb(dbtype));
            
return log;
        }

    }


}
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
1月前
|
SQL 关系型数据库 MySQL
阿里云RDS云数据库全解析:产品功能、收费标准与活动参考
与云服务器ECS一样,关系型数据库RDS也是很多用户上云必买的热门云产品之一,阿里云的云数据库RDS主要包含RDS MySQL、RDS SQL Server、RDS PostgreSQL、RDS MariaDB等几个关系型数据库,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,帮助您解决数据库运维的烦恼。本文为大家介绍阿里云的云数据库 RDS主要产品及计费方式、收费标准以及活动等相关情况,以供参考。
|
1月前
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
183 6
|
2月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
542 5
|
4月前
|
SQL 存储 关系型数据库
MySQL功能模块探秘:数据库世界的奇妙之旅
]带你轻松愉快地探索MySQL 8.4.5的核心功能模块,从SQL引擎到存储引擎,从复制机制到插件系统,让你在欢声笑语中掌握数据库的精髓!
185 26
|
8月前
|
存储 缓存 监控
【YashanDB数据库】数据库运行正常,日志出现大量错误metadata changed
数据库运行正常,日志出现大量错误metadata changed
|
3月前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL数据库的WAL日志与数据写入的过程
PostgreSQL中的WAL(预写日志)是保证数据完整性的关键技术。在数据修改前,系统会先将日志写入WAL,确保宕机时可通过日志恢复数据。它减少了磁盘I/O,提升了性能,并支持手动切换日志文件。WAL文件默认存储在pg_wal目录下,采用16进制命名规则。此外,PostgreSQL提供pg_waldump工具解析日志内容。
332 0
|
6月前
|
存储 缓存 自然语言处理
评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡
评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡
193 8
评论功能开发全解析:从数据库设计到多语言实现-优雅草卓伊凡
|
5月前
|
存储 Oracle 关系型数据库
oracle数据恢复—oracle数据库执行错误truncate命令的数据恢复案例
oracle数据库误执行truncate命令导致数据丢失是一种常见情况。通常情况下,oracle数据库误操作删除数据只需要通过备份恢复数据即可。也会碰到一些特殊情况,例如数据库备份无法使用或者还原报错等。下面和大家分享一例oracle数据库误执行truncate命令导致数据丢失的数据库数据恢复过程。
|
8月前
|
SQL Linux 数据库
【YashanDB知识库】崖山数据库Outline功能验证
本文来自YashanDB官网,主要测试了数据库优化器在不同场景下优先使用outline计划的功能。测试环境包括相同版本新增数据、绑定参数执行、单机主备架构以及数据库版本升级等场景。通过创建表、插入数据、收集统计信息和创建outline等步骤,验证了在各种情况下优化器均能优先采用存储的outline计划。测试结果表明,即使统计信息失效或数据库版本升级,outline功能依然稳定有效,确保查询计划的一致性和性能优化。详情可见[原文链接](https://www.yashandb.com/newsinfo/7488286.html?templateId=1718516)。
【YashanDB知识库】崖山数据库Outline功能验证
|
7月前
|
SQL 数据可视化 IDE
开发数据库不想写命令?YashanDB Developer Center 帮你轻松搞定
YashanDB Developer Center(YDC)是一款可视化的数据库开发工具,专为提升数据库开发效率而设计。它通过图形化对象管理让数据库对象清晰可见,提供智能SQL编辑器支持语法高亮与自动补全,实现PL调试的图形化操作,帮助快速定位问题。此外,操作记录可追溯,多端灵活部署,适配多种场景。无论是中大型企业研发团队,还是不熟悉命令行的业务开发者,YDC都能显著优化开发体验,堪称YashanDB的“可视化IDE”。

热门文章

最新文章