将MCPKit中的MySQL连接代码放在cocoa中的何处
我正在计划把我的MySQL连接代码放在哪里-将MCPKit中的MySQL连接代码放在cocoa中的何处,mysql,cocoa,class,frameworks,database-connection,Mysql,Cocoa,Class,Frameworks,Database Connection,我正在计划把我的MySQL连接代码放在哪里- MCPConnection*conn=[[MCPConnection alloc]initToHost:@],登录名为@“usingPort:@]” 从mac上的MCPKET等。我的目标是通过整个应用程序创建尽可能少的连接实例(如果可能的话,只需一个就可以了) 我能想到的唯一3个地方是- 应用程序委托,但我如何在其他类中使用相同的连接(数据封装) 在每个窗口/视图控制器中放置代码,以实现每个单独的目的(但这意味着需要更多的代码和大量的连接,我不想要
MCPConnection*conn=[[MCPConnection alloc]initToHost:@],登录名为@“usingPort:@]”代码>
从mac上的MCPKET等。我的目标是通过整个应用程序创建尽可能少的连接实例(如果可能的话,只需一个就可以了)
我能想到的唯一3个地方是-
- 应用程序委托,但我如何在其他类中使用相同的连接(数据封装)
- 在每个窗口/视图控制器中放置代码,以实现每个单独的目的(但这意味着需要更多的代码和大量的连接,我不想要)
- 或者最终为所有MySQL查询和单个连接设置一个单独的类。(但如何做到这一点,使此类中的方法易于调用,或者使SQL语句/查询对使用这些方法的所有其他类都具有足够的适应性)
我希望这不会太让人困惑-主要的一点是-我应该把连接代码放在哪里,它在类之间传输得好吗,还是需要在整个应用程序的使用过程中单独和连续地调用它
谢谢您的时间。作为一个简单的解决方案,您可以使用Singleton模式,并使用对静态getInstance的调用替换init代码。单例包装器的唯一公共方法是getConnection,然后您可以正常使用它。是的,您可以将常见的sql构建方法拉入该类,但这会导致代码膨胀,最好对单独的类型查询使用Flyweight模式
这种设计的唯一缺点是,对单个共享数据库连接的访问必须始终序列化,如果有多个线程同时访问数据库,这可能会使一些UI变得缓慢和不负责任 谢谢你的贡献,但我不能理解很多,你能不能帮我简单一点?