
设计模式
文章平均质量分 90
shan9liang
悟空
展开
-
单例模式(Singleton)
一、概要 单例模式,提倡简约而不简单,透漏一种简捷美。它保证一个类仅有一个实例,并提供一个访问它的全局访问点。要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。 二、生活中的例子 1、原创 2011-09-18 15:13:02 · 3333 阅读 · 8 评论 -
工厂方法模式(Factory Method)
一、概要 工厂方法(FactoryMethod)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。 二、生活中的例子 例如移动电信运营商,不同的话费套餐形式,如动感地带,神州行,全球通等。我们可以把抽象工厂(套原创 2011-09-25 07:45:29 · 2910 阅读 · 7 评论 -
抽象工厂模式(Abstract Factory)
一、概要 抽象工厂模式(Abstract Factory),提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。抽象工厂模式提供一种“封装机制”用来解决“多系列具体对象”的创建工作,降低客户端和“创建工作”的紧耦合度。二、生活中的例子原创 2011-09-29 21:38:05 · 3074 阅读 · 3 评论 -
策略模式(Strategy)
一、概要我们构建程序的时候,会遇到这样的状况,对象有某个行为,但是在不同的场景中,使用策略模式,可以把它们一个个封装起来,并且使它们可相互替换,而起使得算法可独立于使用它的客户而变化。 二、生活举例对于一个商店来讲,对不同的客户要报不同的价格,比如:(1)对普通客户或者是新客户报的是全价(2)对老客户(会员)报的价格,要给予一定的折扣(3)对大客户(批发)报的价格,根据原创 2011-10-20 11:42:26 · 2497 阅读 · 15 评论 -
观察者模式(Observer)
一、概述对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。GOF 《设计模式》这样的依赖关系过于紧密,软件不能很好地适应变化。使用面向对象技术,我们可以将这种依赖关系弱化,即降低耦合。 二、生活举例1、我们每个人都有银行卡,通常会有一项业务,余额变更通知。这个便很好地体现了观察者模式。监控银行卡内余额的变化,当我们取钱,转账等原原创 2011-10-10 14:36:22 · 2401 阅读 · 6 评论 -
也谈分层
最近在网上看了很多关于架构的文章,比较流行的是三层架构。我也来凑个热闹,跟着扯一扯分层。我们从大处往小处说,先说,什么是架构?架构是一系列相关的抽象模式,用于指导大型软件系统各方面的设计。它描述一个软件系统从整体到部分的最高层次的抽象划分。直接认为架构就是系统草图也不为过。 根据我们关注的角度不同,架构大概有三种:1、逻辑架构,主要描述软件系统中元件之间的关系,例如用户界面,数据库原创 2011-09-30 10:05:52 · 2576 阅读 · 2 评论 -
代理模式(Proxy)
代理模式是对象的结构型模式,代理模式给某一个对象提供了一个代理对象,并由代理对象控制对原对象的引用。代理分静态代理和动态代理 一、静态代理代码示例 接口package com.jialinl;public interface InterfaceUserManage { public void AddUser(); public void DelU原创 2013-03-11 09:36:02 · 2791 阅读 · 11 评论 -
模板方法模式(TemplateMethod)
模板方法模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中实现,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 UML示例 代码示例 package com.pattern;public abstract class TemplateMethod { public static final String S1="method1原创 2013-05-10 09:11:56 · 3759 阅读 · 9 评论 -
自己动手开发IOC容器
我们广大程序员总是谈论IoC,可是少有人将注意力放在IoC如何实现上,在本文中,我将用简要的语言,配合一些图例,从需求,设计,代码三方面来描述如何实现一个简单的IoC容器。代码也已公布,见我的CSDN CODE,地址:https://code.csdn.net/shan9liang/ioccontainer原创 2014-07-09 15:13:11 · 8450 阅读 · 25 评论