设计模式案例

1.策略模式

package 策略模式;

public class ConcreteStrategy extends Strategy{

public void strategyInteface() {
// TODO Auto-generated method stub

}

}

package 策略模式;

public class Contex {
private Strategy strategy;
public void contextInteface(){
strategy.strategyInteface();
}
}

package 策略模式;
/*内涵:针对一组算法,将每一个算法封装到具有共同接口的独立类中,从而使得他们可以相互替换,
* 策略模式可以使得算法在不影响客户端的情况下发生变化
* */
public abstract class Strategy {//抽象策略类:
/*策略模式是对算法的包装,是把使用的算法的责任和算法本身分割开,委派给不同的对象管理
* 环境角色:持有一个strategy类引用
* 抽象策略角色:给出所有具体策略类所需要的接口
* 具体策略角色:包装了相关的算法和行为
*
* 多态的特征:算法的互换
*
* */

public abstract void strategyInteface();

/*注意:
* 具体的策略类都有一些公有的行为,应该将这些行为都放到抽象策略角色中(抽象角色必须是抽象类)
* 策略模式在每一刻都只能使用一个策略对象;同时与几个策略对象联系只有在不会耗费计算机资源时或在策略对象
* 花费很多时间初始化时才需要
* */

}

时间: 2024-11-05 06:09:19

设计模式案例的相关文章

java设计模式案例详解:观察者模式

观察者模式的应用场景: 1. 对一个对象状态的更新,需要其他对象同步更新,而且其他对象的数量动态可变. 2. 对象仅需要将自己的更新通知给其他对象而不需要知道其他对象的细节. 举个例子说明,这个例子讲述一个老大吩咐小弟做事的故事,只要老大一声令下小弟就开始工作,小弟成员可增减.根据模式定义,使用两个接口,多个实现 package main.java.com.learn.observer; /** * 干活接口,接到消息的类实现该接口干活,也就是观察者 * @author garfield * *

大话设计模式--第一章 简单工厂设计模式

简单工厂设计模式 案例: 写一个计算器, 实现加减乘除. 第一步: 写一份简单的代码 package com.chapter1; public class Caculator1 { public static void main(String[] args) { if(args.length < 3){ System.out.println("参数个数异常"); return ; } Double num1 = Double.parseDouble(args[0]); Doubl

设计模式实用案例系列说明

设计模式学的时候比较抽象,真正用起来了就比较简单,而且真正常用的其实都是一些简单易用的模式. 但是很多介绍设计模式的资料都是用的示例代码,不具有实际意义,也就不便于理解和记忆. 我在这个系列会用一些项目上实际的案例和代码来总结设计模式,希望真有助于理解. 设计模式种类繁多,这里列举一些在项目上实际应用过的,贪多嚼不烂,有的时候真正掌握的了一些,再看其他的会举一反三. 常用设计模式分类: 1. 创建型 创建对象时,不再由我们直接实例化对象:而是根据特定场景,由程序来确定创建对象的方式,从而保证更大

[javaweb]Java过滤器与包装设计模式的实用案例.

在filter中可以得到代表用户请求和响应的request.response对象,因此在编程中可以使用Decorator(装饰器)模式对request.response对象进行包装,再把包装对象传给目标资源,从而实现一些特殊需求. 一.Decorator设计模式 1.1.Decorator设计模式介绍 当某个对象的方法不适应业务需求时,通常有2种方式可以对方法进行增强: 编写子类,覆盖需增强的方法. 使用Decorator设计模式对方法进行增强. 在阎宏博士的<JAVA与模式>一书中开头是这样

设计模式--组合模式真实案例

所有的例子均来源与实际开发项目 本节介绍组合模式的使用–商品结果排序评分系统 首先还是重复一下:设计模式是思路,而不是一味套用,如果业务场景和功能需求恰好吻合,那最好不过:如果有偏差,一定要具体情况具体分析,更具实际场景选择合适的模式类型(注意,是类型,并不特定指某种模式,有的时候一个场景多种模式都可以做) 本节所举得例子为商品结果排序评分系统,也就是很多项目中,在比较重要任何事物查询完毕后,会有一个排序过程,比如在淘宝上搜索完商品后那个商品列表的排序过程.而且其复杂度当然远远超过数据中SQL语

实际案例讲解iOS设计模式——MVC模式

MVC模式是iOS编程中提到的最多次的设计模式,也是使用最频繁的设计模式之一.网络上有很多的MVC模式的分析文章,但都是从原理上来解释,很少能找到配套的案例来说明到底在实际的项目中要如何的使用这种模式.小编在经过详细的研究.对比和实验了之后,总结了一下这个模式的一些简单使用方法,希望能起一个抛砖引玉的作用,使得对MVC默认的同学能依葫芦画瓢的了解MVC模式的使用方法,并以此类推出更多.更好的方法出来. 这篇文章先从老生常谈的MVC设计模式的原理说起,然后配上一个简单的案例,以演示如何将一个常规的

两种设计模式的结合案例

摘要 本学期我学习了“设计模式-可复用面向对象软件的基础”这门课程,这次我采用的是命令模式+策略模式两种设计模式结合的案例. 分析的案例为:遥控器控制天花板上的吊扇,它有多种转动速度,当然也允许被关闭.假设吊扇速度:高.中.低 .关闭.采用安全模式+策略设计模式. 报告整体结构为:两种设计模式的分析.理解,类图,实例分析.代码分析,总结. 目录 第一章 命令模式+策略模式 1 1.1 命令模式 1 1.1.1 定义 1 1.1.2 命令模式的结构 1 1.1.3 角色 1 1.1.4 优点 2

【java设计模式】(6)---迭代器模式(案例解析)

设计模式之迭代器模式 一.java迭代器介绍 1.迭代器接口 在jdk中,与迭代器相关的接口有两个:Iterator 与 Iterable. Iterator:迭代器,Iterator及其子类通常是迭代器本身的结构与方法:迭代器是一种模式,它可以使得对于序列类型的数据结构的遍历行为与被遍历的对象分离,即我们无需关心该序列的底层结构是什么样子的.只要拿到 这个对象,使用迭代器就可以遍历这个对象的内部. Iterable:可迭代的,那些想用到迭代器功能的其它类,如AbstractList HashM

OC学习-单例设计模式的理解、案例和简单总结

单例模式,就是一个类始终只有一个实例,不管如果copy还是retain还是alloc等等,都只有一个实例.为什么?有什么好处? 简单来说: a:有的东西只能有一个,那就必须用单例: b:单例的好处就是不会有多余的实例,所以节约内存: c:因为只有一个单例,所以易于管理多线程对它的访问. d:其他的原因……省略 我们创建一个单例的User类,然后生成一个user1对象,再把这个对象进行copy.retain这些,再看看它们是否是同一个实例,还是被创建出多个实例? (1)User.h view so