设计模式
Ritter_Liu
这个作者很懒,什么都没留下…
展开
-
大话设计模式2 开放封闭原则
开放封闭原则感觉不错,其核心就是:面对需求,对程序的改动是通过增加代码来进行的,而非修改现有代码。一个计算类,如果新增加减乘除运算,都只需要继承Calculator,新增子类即可,而不用在Calculator类内部修改。abstract class Calculator{ double numA; double numB; public abstract do原创 2013-01-09 19:28:42 · 1056 阅读 · 0 评论 -
设计模式 总结
From 《Head first设计模式》装饰者:包装一个对象,以提供新的行为。状态:封装了基于状态的行为,并使用委托在行为间切换。迭代器:在对象的集合中游走,而不暴露集合的实现。外观:简化一群类的接口。策略:封装可以互换的行为,并使用委托来决定要使用哪一个。代理:包装对象,以控制对此对象的访问。工厂方法:由子类决定具体要创建的是哪一个类。适配器:封装对象,并提供不原创 2013-09-04 23:50:50 · 1276 阅读 · 0 评论 -
Head First设计模式1 命令模式
命令模式通过命令模式,可以使发出请求的对象与被请求的对象都依赖抽象编程,而非依赖具体的类,实现了解耦。并且由于较好的封装了请求,命令模式可以被撤销。package command;interface ICommand{ public void excute(); public void undo();}class Light{ private String原创 2013-07-21 20:18:24 · 1201 阅读 · 0 评论 -
大话设计模式7 状态模式 适配器模式
1.状态模式。当控制一个对象状态转变的条件表达式过于复杂时,把状态转移的过程转移到一系列表示不同状态的类当中去。感觉适合用于状态转化时使用:abstract class State{ public abstract void handle(Context context);}class ConcreteStateA extends State{ @Override pu原创 2013-03-03 21:22:35 · 1393 阅读 · 0 评论 -
大话设计模式3 装饰模式 代理模式
1.装饰模式动态的给对象添加一些额外的职责,把类中的装饰功能移出,以简化原有类。一个给人穿衣的例子。。人是核心类。。。其他的衣服都只是装饰而已。。package SimpleFactory;class Person{ public void show(){ }}class Finery extends Person{ Pers原创 2013-01-17 23:53:52 · 1086 阅读 · 0 评论 -
大话设计模式1 简单工厂模式 策略模式
终于得空,本来想看看android的源码,但是想起以前看源码时总有点晕,不清楚为什么要这样设计代码结构,所以决定先把设计模式的相关知识学习一下。买了n久的大话设计模式啊。。终于下定决心开始啃了。。。泪奔。。。1.简单工厂模式感觉简单工厂模式就是利用多态的特性,在实例化时,根据具体的子类,来实现不同的执行效果。/**收费模式:正常,反现,折扣*/enum Charge{NORM原创 2013-01-08 21:22:09 · 1117 阅读 · 0 评论 -
大话设计模式4 简单工厂模式VS工厂模式
工厂模式:与前面学习的简单工厂模式比起来,工厂模式更加符合开放封闭原则,新增对象类型是通过新增工厂类实现的,而非修改原有的工厂类。用一个简单的学雷锋的例子做对比。package simpleFactoryVSFactory;interface IXueLeiFeng { void sweep(); void wash();}class Student impl原创 2013-01-20 16:41:46 · 1025 阅读 · 0 评论 -
大话设计模式9 单例模式 桥接模式
1.单例模式顾名思义,使一个类最多仅有一个实例化的对象的模式。单例模式根据对象实例化的早晚,分为懒汉式和饿汉式两种。懒汉式,不调用它,就不实例化对象,懒。。。/** * 懒汉式 * */class Singleton{ private static Singleton mInstance; private Singleton(){} public static原创 2013-05-01 20:03:52 · 1454 阅读 · 0 评论 -
大话设计模式8 组合模式 迭代器模式
1.组合模式将对象组合成树形结构进行表示,使用户对单个对象和组合对象的使用具有一致性。当用户可以忽略组合对象与单个对象的不同,统一的使用组合结构中的所有对象时,可以考虑使用组合模式。import java.util.ArrayList;abstract class Component{ protected String mName; public Component(Strin原创 2013-04-30 19:24:30 · 2522 阅读 · 0 评论 -
大话设计模式6 建造者模式 观察者模式
1.建造者模式感觉和模板模式有些相似,不过模板模式是通过继承,实现具体细节实现的变化,而建造者模式则是在一个指挥者的指导下,进行建造,对外封装了实现的细节。package builder;import java.util.ArrayList;class Product { private ArrayList mPartList=new ArrayList(); public原创 2013-02-18 21:29:37 · 1356 阅读 · 0 评论 -
大话设计模式5 模版模式 外观模式
1.模版模式今天看到了一个很不错的模式:模版模式,由父类定义好逻辑结构,但是其中一些具体的细节留给子类去实现。使子类可以不必改变具体的逻辑结构,就可以重新定义细节。一个关于考试答题的简单例子:abstract class TestPaper{ public void question1() { System.out.println("Questio原创 2013-01-24 20:09:12 · 998 阅读 · 0 评论 -
IoDH实现的单例模式
在别人的代码里,看到用了一种很奇葩的方式,实现的单例模式,后来搜索了下这样实现的原因,才知道这是一个叫Initialization Demand Holder (IoDH)的技术,转了两篇,和大家分享下。原文地址1原文地址23.4 饿汉式单例与懒汉式单例的讨论 Sunny公 司开发人员使用单例模式实现了负载均衡器的设计,但是在实际使用中出现了一个非常严重的问题,当转载 2015-11-09 20:29:43 · 4491 阅读 · 3 评论