设计模式
lxgwm2008
软件工程师 Engineer
展开
-
singleton模式的几种实现方式
一、最简单的方式 public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } 这是最简单的方式。该方式适合于单线程运行,如果在多线程环境下,需要对该方法进行同步。由此引出第二个方法。原创 2012-07-02 22:17:36 · 4621 阅读 · 0 评论 -
设计模式之装饰模式
有时如果需要对某一个类增加一个功能,可以使用继承来实现。但是如果想要只是对某一个对象来增加一项功能,则可能会用到装饰模式。装饰模式的主要作用是动态的给某一个对象添加某些功能。如果此时使用继承来添加功能时,会产生大量的子类,导致难以维护。 装饰模式的简要类图如下: 其中: Component为待增加功能(即待装饰)的抽象部件 ConcreateComponent为具体部件 Decora原创 2012-07-24 15:34:44 · 2448 阅读 · 0 评论 -
设计模式之抽象工厂
抽象工厂最容易理解的应用场景是主题,或者L&F(Look & Feel)。目前很多的application都支持不同的界面风格。当在不同的风格界面之间进行切换时,其内部包含的各种组件,如button、textview等等,也会切换到相应风格的组件。这种情况下,如果使用硬编码,则在程序中可能需要使用大量的条件判断,根据不同的界面风格,选择创建不同的组件。此时可以考虑使用抽象工厂来进行替换。原创 2012-09-13 22:52:25 · 839 阅读 · 0 评论 -
设计模式之原型模式
原型模式(ProtoType)属于对象创建型模式,其典型应用情景是模板,比如邮件。某些邮件系统允许用户创建一个或几个信件模板。当需要写一封新邮件时,可以选择以前创建好的邮件模板。这样可以大大提高工作效率。这种情况下,就可以使用原型模式。将每一个邮件模板作为一个原型。写新邮件时,直接拷贝原型模板就可以。 一般情况下,系统允许用户创建多个模板,即可以存在多个原型。此时可以增加一个原型管理器来原创 2012-09-14 13:10:20 · 587 阅读 · 0 评论 -
命令模式场景之undo
命令模式可以应用到很多场景,比如实现do/undo功能、实现导航功能。本文使用命令模式实现了一个基本的do/undo功能。 角色介绍如下: Command:抽象命令接口 CutCommand:具体命令之一——剪切命令 CommandManager:命令管理器,存储执行过的命令 Client:客户端 代码如下: package com.pattern.command; public原创 2013-01-29 22:23:50 · 2641 阅读 · 2 评论