设计模式(抽象&封装)
文章平均质量分 85
chuanwang66
软件工程专业
展开
-
策略模式——strategy
Strategy Pattern 本文总结《Design Pattern in Java》 Chap23 Strategy. 以为用户推荐一款烟火制品选择采取不同推荐策略为例。先讲解如果不采用策略模式会怎样,然后将这些代码重构为策略模式。 1、如果不使用策略模式,Customer::getRecommended()...原创 2011-06-02 12:36:09 · 132 阅读 · 0 评论 -
享元模式——Flyweight
享元模式——Flyweight1. 概念 享元模式(Flyweight,轻量级选手)就是利用可共享对象的池。因而,通常用到Factory,称为FlyweightFactory享元工厂。(Sam) 将对象定义为不可变(immutable)的是避免客户代码之间相互影响最简单...原创 2012-02-17 13:10:16 · 74 阅读 · 0 评论 -
工厂方法和抽象工厂——Factory Method & Abstract Factory
一、使用抽象工厂和工厂方法Factory Method Pattern工厂方法 和 Abstract Factory Pattern抽象工厂 是两种不同的设计模式。《Java设计模式》书上给出了如下定义,但是Sam觉得有点问题,在网上找了找资料,在后文将给出我自己的理解。 Factory Method Pattern P167 The intent ...原创 2012-01-04 17:14:11 · 95 阅读 · 0 评论 -
单例模式——Singleton
public class Singleton { private static Singleton instance; private Singleton(){} public static Singleton getInstance(){ if(instance==null){ instance=new Sing...原创 2012-01-04 17:08:59 · 113 阅读 · 0 评论 -
观察者模式——Observer
观察者模式——Observer 本系列文章中,State模式的第一种实现方法(switch实现state转化)将旋转门类Door作为Observable的子类,就采用了Observer模式。配套还应该实现Observer接口来支持对Door实例的观察。 记忆要点: ...原创 2012-01-04 16:25:11 · 113 阅读 · 0 评论 -
适配器模式——Adaptor(Adapter)
适配器模式——Adaptor(Adapter) 注意: Adaptor,也作Adapter 一、定义及架构 Adaptor(别名Wrapper)模式:将一个类的接口,转换成客户期望的另一个类的接口。适配器器让原本接口不兼容的类可以合作无间。要点: 1...原创 2012-01-01 18:23:26 · 2018 阅读 · 0 评论 -
状态模式——State (更好的实现状态机)
1. 概述 The intent of the STATEpattern is to distribute state-specific logic across classes that represent anobject’s state. STATE设计模式的目的是:将特定状态相关的逻辑分散到一些类的状态类中。 ...原创 2011-12-28 14:10:13 · 2257 阅读 · 0 评论 -
装饰者模式——Decorator
装饰者模式——Decorator 有时间还是看一下《Java设计模式》,临近期末,为了节省时间我直接找了一些资料总结了一下。 1. Decorator好处/目的: A.如果使用继承实现功能扩展: 我们通常使用继承来实现功能扩展,随着这些需要扩展的功...原创 2011-12-25 11:11:25 · 80 阅读 · 0 评论 -
组合模式——Composite
1. Composite 定义: 将对象以树形结构组织起来,以达成“部分-整体”的层次结构,使得客户端对单个对象和组合对象的使用具有一致性。 想到Composite就应该想到树形结构图。组合体内这些对象都有共同接口。当组合体一个对象的方法被调用时,Composite将遍历整个“子树”,寻找同样包含这个方法的对象...原创 2011-12-24 14:27:40 · 81 阅读 · 0 评论 -
构造者模式——Builder
构造者模式——Builder 本文是《Java设计模式》Chapter15 Builder的总结。 一、Builder模式实践 在本例中,用诸如以下的字符串构造Reservation对象,字符串可能不合法或者缺少某些属性。 为了保证构造出来的Reservation对象是合法对象,引入中间对象ReservationBuilder,临时存储已经读取的属性;最终用它的方法b...原创 2011-08-10 13:59:17 · 138 阅读 · 0 评论 -
责任链模式——Chain of Responsibility
一、总结《Java设计模式》Chapter12 Chain of Responsibility 概述:The intent of the chain responsibility pattern is to avoid coupling the sender of a request to its receiver, by giving more than one object ...原创 2011-08-10 11:26:08 · 184 阅读 · 0 评论 -
代理模式Dynamic Proxies(四、Struts2.0拦截器Interceptor)
一、概念和注意点: Once you write a dynamic proxy class, you can use it to wrap any object, so long as the object is an instance of a class that implements an interface that declares the behavior you wa...原创 2011-08-01 11:31:07 · 92 阅读 · 0 评论 -
代理模式Remote Proxies(三、RMI)
因为我本科毕业设计中大量采用RMI实现分布式,且使用了Eclipse中用于开发RMI的插件,这里主要阐述以下几点:一、注意;二、代码;三、如何手工编写RMI应用。 一、注意1)RMI产生stub的改进P128. Earlier versions of the JDK constructed separate (stub) files for use on the cli...原创 2011-08-01 09:51:12 · 175 阅读 · 0 评论 -
代理模式Image Proxies(二、最朴素实现)
在前面《 代理模式Image Proxies(一、最朴素实现) 》中,代理类如下:package com.oozinoz.imaging;/* * Copyright (c) 2001, 2005. Steven J. Metsker. * * Steve Metsker makes no representations or warranties about * t...原创 2011-07-31 11:55:04 · 138 阅读 · 0 评论 -
命令模式——Command
偷懒一下,直接用JavaEye上chjavach老兄的文章了,他讲命令模式用了6节不厌其烦地阐述。虽然冗长,但算是详尽,需要看时下载附件中的电子书和代码即可^_^文中第一个例子“点击按钮开机”非常形象,记清楚以下几点: 1、MainBoardApi,GigaMainBoard(以及MsiMainBoard)是命令接收者接口、命令接收者实现类。好比“主板标...原创 2011-06-10 10:31:37 · 161 阅读 · 0 评论 -
代理模式Image Proxies(一、最朴素实现)
A Classic Example: Image Proxies 以下是最朴素的代理模式实现,其中只有“代理”的思想,但并不是真正的代理。 一个ImageIconProxy proxy实例被封装在JFrame frame中,且他们都是ShowProxy属性。 点击“Load按钮”触发调用proxy.load(frame),该方法重新设置pro...原创 2011-06-03 09:27:26 · 477 阅读 · 0 评论 -
(第十章)一个xml解析器和构造器
本章的前两节“10.1 状态机”、“10.2builder 模式”其实都涉及到设计模式里面的内容。 10.1状态机主要讲解如何绘制状态图,以及根据状态图编写代码,但是作者并没有用到state模式进行编码,而是采用了比较结构化的编码方式。关于如何使用state模式,见我的博客“设计模式”专题。 10.2 builder模式主要介绍了 Builder模...原创 2013-03-10 16:40:56 · 101 阅读 · 0 评论