Articles of 设计模式

上下文菜单类似于新的Play音乐应用程序(v5.0.0)

您可能已经注意到在新的Play音乐应用程序(从5.0.0版本开始)接近每首歌曲的三个点,popup一个上下文菜单: 与旧三角形相比,我更喜欢这些点的外观,类似于旋转器。 我知道这不应该从头开始实施,我的问题是: 是否有任何新的标准方式来实现这种模式(左上角的新导航抽屉模式非常相似)? 提前致谢。

3×3数字矩阵可能的模式

可能重复: android锁密码组合 尊敬的先生,我遇到了一个问题,要求find所有独特的模式,给出一个3×3矩阵,数字为1-9。 这与android锁屏相同。 你能帮我find它吗? 我想我们可以使用floyd warshall来增加计数,只要值在后续矩阵中发生变化吗?

android – ListView的索引?

是否有可能在ListView的右侧有一个索引? 这可以在iPhone上显示右侧的字母表。 触摸字母表上的字母会将一个字母带到ListView中以该字母开头的项目的开头。 Android中是否有内置代码用于此function? 或者这是一个必须定制的东西?

在Android TextView中链接

我有一个带有文本的文本视图“这是由XYZ开发的产品。有关更多疑问,请发送电子邮件至info@abc.com。我已联系”info@abc.com“。但问题是,每当我触摸任何在textview下方的区域,它与电子邮件相关联。如何确定,链接必须仅在点击信息时发生….我使用了模式,Linkify.EMAIL_ADDRESS ..似乎没什么用……好的建议一些答案

我是否将Singleton与Realm数据库一起使用?

我有一个应用程序,用户可以从DialogFragment创建/删除/编辑列表。 之前我在DialogFragments中有这样的方法: MainActivtity.adapter.add(String name, String location, double price); adapter是我的recyclerView的适配器对象。 适配器的类具有我对recyclelerView中的项的创建/删除/编辑方法。 如上所示,这就像我所理解的那样,也是一种叫做mehtods的可怕方式。 所以我选择将所有这些CRUD方法放在一个单独的类中,并像这样调用这些方法: Service.getInstance().add(…); 这是一种正确的方法,我可以做得更好吗? 这就是我如何创建现在包含我的CRUD方法的单例类,而不是像以前一样将它们放在我的适配器类中。 public class Service { private static Realm realm; private static Service service = new Service(); private Service() { realm = Realm.getInstance(App.getAppContex()); } public static Service getInstance(){ if(service == null){ service = new Service(); } return service; } public void add(String […]

像架构这样的服务的设计模式

什么设计模式将智能存在以下组件(简化): 3组件 – GUI – 数据获取器 – 数据库 我无法访问Internet中的服务器,它只是一个数据源。 在Internet中放置的数据总是较新的,本地数据库只是Internet中的数据的副本(缓存)。 GUI可以请求和更新本地缓存,类似服务的组件然后异步提取最新数据,这可能需要一段时间。 GUI仅显示本地数据库中的数据,可以同步获取。 所以我的问题是,您可以使用哪些类来长期运行Service with Progressbarfunction? 这种“问题”有更好的设计吗? 有更好的做法吗?

使用memento /命令模式快速撤消/重做?

我正在为手机编写绘画/图形Java应用程序(因此内存有限)。 应用程序状态基本上是三个1000×500位图(即绘画层)。 加载三个位图大约需要2到3秒。 我正在尝试编写一个撤销引擎,但我无法find一个好方法来做到这一点。 典型的方法是: 使用命令模式:撤消时,重新加载初始文件的状态,然后播放到目前为止处理的所有命令,最后一个命令除外。 天真地这样做意味着等待2或3秒来加载太慢的初始状态。 内存不足以将初始状态存储在内存中。 使用memento模式:撤消时,替换使用旧状态更改的当前状态部分。 这意味着每个操作都需要将旧状态的位图保存到磁盘,因为移动设备上没有足够的内存将其存储在内存中。 由于保存位图需要时间,如果用户决定快速连续绘制多个画笔笔划,我该如何应对? 我无法让他们等待。 我的所有解决方案都涉及上述模式的复杂混合。 任何人都可以提出一个解决方案,让我能够为我的应用程序进行相当快速的撤销/重做吗?

一种避免多个ifs的设计模式

我有一个非常糟糕的类,有两种方法可以在服务可用时启动或停止某些服务。 像下面的东西(它们不是if-elses,只是如果): void startServices() { if (service1 == true) { start1(); } if (service2 == true) { start2(); } if (serviceN == true) { startN(); } } void stopServices() { if (service1 == true) { stop1(); } if (service2 == true) { stop2(); } if (serviceN == true) { stopN(); } } 您是否建议我使用任何设计模式使其更漂亮? 谢谢!

Android MVP实现

我发现了一些关于这个主题的文章但我无法理解如何在我的应用程序代码上应用MVP。 是否有针对Android的清洁MVP实现的任何具体指导。 谢谢

太多的样板,我怎样才能减少我的POJO建造者?

我有几个使用构建器模式的不同POJO ,但在为每个POJO添加构建器并生成Object.toString , Object.hashCode和Object.equals ,我的类最终大约有100行代码。 必须有一个更好的方法来处理这个问题。 我认为拥有某种反思性的建设者会有很多帮助,但我不确定这是不是很好的做法,而且我也不确定我是如何做到这一点的。 换句话说,有没有办法实现这样的构建器? 一个简单的POJO: public class Foo { public int id; public String title; public boolean change; … } 然后某种反思建设者: Foo = ReflectiveBuilder.from(Foo.class).id(1).title(“title”).change(false).build();