`
zhangyang520
  • 浏览: 4204 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

单例模式产生的现象

阅读更多

1:单例模式使用时注意!

   问题:
      在MobileOA项目中,LoginPopup登录提示框工具类使用单例模式,但是在showPopupWindow
      方法中针对函数的回调函数参数进行使用了单个实例存在的模式!所以在同一次登录
      的多次"模糊查询用户名"显示的情况下,回调函数的实例的hashcode地址相同,但是回调函数在LoginActivity类中实现的
      OnLoginItemClickListener接口的回调函数所对应的:
           控件实例
       edLoginName
       edLoginPd
    的hashcode值却是相同的,导致都是同一hashcode地址的editText控件内容赋值内容!


   现象:
      导致在多次切换到登录页中,使用模糊查询,提示多个用户名的提示。点击提示框条目
      ,但是在页面中的"用户名,密码"editText的内容就是不显示!


   解决方案:
      测试OnLoginItemClickListener接口实现函数中:
           edLoginName
           edLoginPd控件中的内容。

      结果是:弹出吐司有内容,就是不显示!


      应该想到edLoginName,edLoginPd的控件实例应该对象应该不一样!
      针对LoginPopup工具类中的showPopupWindow函数中的OnLoginItemClickListener
      参数,不应该设置"同例模式".

分享到:
评论

相关推荐

    单例模式(singleton)

    单例模式是软件设计模式中的一种,它的核心思想是确保一个类在整个系统中只有一个实例,并提供一个全局访问点。在Java或类似编程语言中,单例模式常常被用来管理资源,比如数据库连接、线程池或者配置信息,因为这些...

    软件设计模式的非软件例子归纳.pdf

    宪法规定只有一个总统,并规定了选举和继任规则,确保在任何时候只有一个现任总统,体现了单例模式确保类只有一个实例的特性。 这些例子说明,软件设计模式不仅限于软件领域,它们可以从现实世界中找到对应的现象和...

    浅谈Spring 的Controller 是单例or多例

    由于单例模式的特性,Controller的实例在系统启动后被创建,然后在每次请求时被共享,因此在定义Controller时应遵循一些最佳实践: 1. **避免在Controller中定义成员变量**:由于单例Controller可能会被多个线程...

    Non-Software Examples of Software Design Patterns.pdf

    例如,文章可能讨论“单例模式”如何在自然界的独生子物种中体现,或者“工厂方法模式”如何在生物多样性和生态系统中发挥作用。通过这样的类比,非软件实例不仅加深了对设计模式的理解,还揭示了软件设计与自然世界...

    set6_chapter010uml_使用框架和模型1

    这些知识点反映了设计模式在软件开发中的重要性,如观察者模式、单例模式、外观模式、建造者模式和工厂方法,以及组件模型和软件部署的概念。理解这些概念对于设计可扩展、可维护的软件系统至关重要。

    活动抽奖软件源码

    良好的软件设计对于抽奖软件至关重要,常见的设计模式如工厂模式、单例模式和观察者模式可能会被应用到。 1. 工厂模式:用于创建抽奖规则或奖项对象,使得代码更具有扩展性和灵活性。 2. 单例模式:可能用于控制...

    Java程序并发设计

    单例模式在并发环境下需确保线程安全,防止产生多个实例。 Java并发API中的并发容器,如ConcurrentHashMap、CopyOnWriteArrayList等,为并发编程提供了便利。这些容器内部实现了线程安全的机制,使得在并发环境中...

    面向对象的程序设计(长江大学 软工班)期末考试B

    10. **设计模式**:设计模式是解决常见问题的最佳实践,如工厂模式、单例模式、观察者模式等。理解和掌握设计模式有助于编写出更健壮、可维护的代码。 以上是面向对象程序设计的一些关键知识点,这些内容可能是长江...

    线程问题出现与解决

    单例模式是一种常用的软件设计模式,用于保证一个类只有一个实例,并提供一个全局访问点。在Java中,懒汉式单例模式的一个常见问题是线程安全性。 **非线程安全的懒汉式单例模式**: ```java public class ...

    Java语言编程规范--华为技术有限公司

    - 合理应用设计模式,如工厂模式、单例模式、观察者模式等,提高代码质量。 10. **代码复用**: - 提倡高内聚、低耦合的设计原则,减少重复代码。 - 通过函数、类和模块化实现代码复用。 11. **单元测试**: -...

    java线程安全总结.doc

    1. **单例模式**:确保一个类只有一个实例,通常需要考虑线程安全的单例实现,如双重检查锁定。 2. **生产者消费者模式**:通过队列来协调生产者和消费者的执行,避免直接的资源竞争。 3. **读写锁**:允许多个线程...

    浅谈内存泄漏

    3. **不正确的单例模式实现**:在单例类中,若对象创建和销毁的控制不严格,也容易引发内存泄漏。例如: ```cpp char* g_lpszFileName = NULL; void SetFileName(const char* lpcszFileName){ if(g_...

    gr_optimization

    - 选择合适的设计模式,如工厂模式、单例模式、观察者模式等,使代码结构更清晰,易于维护,间接提升性能。 8. **编译优化**: - 使用JIT(Just-In-Time)编译器,让热点代码运行得更快。 - 开启逃逸分析,让...

    cocos2d框架.pdf

    - asset-manager-builtins(内建资源管理器):这是一个单例模式的模块,负责管理游戏的内建资源。 - Bundle(资源包):作为一个资源容器,它允许加载和释放资源,提供了一种组织资源的方式。 - Cache(缓存):...

Global site tag (gtag.js) - Google Analytics