1、单例模式(静态模式)
使用原则:使内存中保持一个对象,写法如下:
- public class SingleObj{
- private static final SingleObj obj=new SingleObj();
- public static SingleObj getObj(){
- return obj;
- }
- private SingleObj{
- }
- }
2、工厂模式
使用原则:提供实例对象的引用,写法如下:
- public class Demo{
- public static void main(String[] args){
- Factory f=new Factory();
- f.getInstance().getString();
- }
- }
- public class Factory{
- public DemoDao getInstance(){
- DemoDao instance=new DemoDaoImp();
- return instance;
- }
- }
- interface DemoDao{
- public String getString();
- }
- public DemoDaoImp Implements DemoDao{
- public String getString(){
- System.out.println("工厂模式");
- };
- }
3、代理设计模式
使用原则:就像秘书和老板的关系,秘书负责日常事务的处理,比如老板行程安排、会议资料的整理,老板负责执行,比如开始行程 、开会宣布工作
- interface NormalTask{
- public void journey();
- }
- public class Boss implements NormalTask{
- public void journey(){
- System.out.println("开始行程");//老板开始行程
- };
- }
- public class Secretary implements NormalTask{
- private NormalTask task;
- public Secretary(NormalTask task){
- this.task=task;
- }
- public void planJourney(){//秘书需要做额外的安排工作
- System.out.println("安排行程");
- };
- public void journey(){
- this.planJournery();//判读是否安排好了行程,如果安排好了,就可以开始行程了
- this.task.journery();//通知老板可以开始行程了
- };
- }
- public class Demo{
- public static void main(String args[]){
- NormalTask task=new Secretary(new Boss());
- task.journery();//老板在秘书的安排下开始行程
- }
- }
4、观察者设计模式
5、适配器模式
当前文章价值0.02元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)
你可能感兴趣的文章
来源:每日教程,
每日一例,深入学习实用技术教程,关注公众号TeachCourse
转载请注明出处: https://teachcourse.cn/android-common-design-pattern ,谢谢支持!
转载请注明出处: https://teachcourse.cn/android-common-design-pattern ,谢谢支持!
Conversion to Dalvik format failed
从一台电脑导入项目到另一台电脑的Eclipse中,出现红叉错误:Multiple dex files define Lcom/ta/utd...
Windows 10设置默认操作系统常见问题总结
系统启动
打开“高级系统设置”
打开“启动和故障修复——>设置”,查看到有多个操作系统,删除多余的操作系统
关于系统引导
Win+R输入msconfig打...
浅谈AnalogClock和DigitalClock
AnalogClock是模拟时钟指针的形式显示时间,只有时针和分针;DigitalClock是以数字的形式显示时间,可以精确到秒。
线上产品接入bugly热更新
摘要
Tinker热更新补丁能够执行成功,依赖基准包中的TINKER_ID和补丁包的TINKER_ID一致。基准包的TINKER_ID可以在打包后的apk文件解压后Andro...
python随机方法random
Python 中的 random.shuffle() 方法是一个强大的工具,其作用在于随机地重新排列一个可变序列(如列表)中的元素顺序。具体来说:
位置: rand...
Android Spinner控件自定义样式分析
Spinner控件自带的样式不符合开发需要,本篇文章介绍Spinner控件基本使用例子,分析列表样式的设计,然后结合开发的需要,自定义或修...
实例说明kotlin关键字by lazy的用法
by lazy 是 Kotlin 中用于属性委托(property delegation)的一个非常有用的关键字。它允许懒加载(lazy initialization)一个属性,即只有在首...
实例说明kotlin如何创建一个数组
在 Kotlin 中,创建数组有多种方式,具体取决于想要创建的数组类型(如基本类型数组、对象数组)以及是否需要初始化。Kotlin 提供了丰富的语法糖...
ubuntu写入权限(W)和执行权限(X)
需求
站点上传图片的目录,容易成为攻击的对象,经常出现警告,被植入“病毒”,加强权限控制。
权限控制
图片上传目录uploads及其子目录只分配读...
批量文本生图工具
2024-04-28
增加支持自定义背景图,配置文件增加background_url
指定了background_url后,属性canvas_width、canvas_height、background属性失...