第一次接触设计模式:
//interface
interface FlyBehavior
{
public void fly();
}
//interface的实现类
class FlyWithWings implements FlyBehavior
{
public void fly(){
System.out.println("I'm flying!");
}
}
class FlyRocketPowered implements FlyBehavior
{
public void fly()
{
System.out.println("I'm flying with a rocket!");
}
}
class FlyNoWay implements FlyBehavior
{
public void fly()
{
System.out.println("I'm can't fly!");
}
}
//鸭子super类
abstract class Duck
{
FlyBehavior flyBehavior;
//QuackBehavior quackBehavior;
public Duck(){
}
public abstract void display();
public void performFly(){
flyBehavior.fly();
}
public void setFlyBehavior(FlyBehavior fb){
flyBehavior=fb;
}
public void swim(){
System.out.println("All ducks float,even decopys!");
}
}
//MallardDuck类
class MallardDuck extends Duck
{
public MallardDuck(){
flyBehavior =new FlyWithWings();
}
public void display(){
System.out.println("I'm a real mallard duck!");
}
}
//ModelDuck类策略设计模式
class ModelDuck extends Duck
{
public ModelDuck()
{
flyBehavior=new FlyNoWay();
}
public void display(){
System.out.println("I'm a model duck");
}
}
//鸭子模拟器 MiniDuckSimulator
public class All
{
public static void main(String args[])
{
Duck mallard=new MallardDuck();//方便向下转型
mallard.performFly();
Duck model=new ModelDuck();
model.performFly();
model.setFlyBehavior (new FlyRocketPowered());
model.performFly();
}
}
分享到:
相关推荐
策略设计模式是软件工程中的一种行为设计模式,它使你能在运行时改变对象的行为。在策略模式中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为模式。 在策略模式中,我们创建表示各种策略的...
标题中的“策略设计模式_构建公共通用的Dao”指出,我们即将探讨的是如何利用策略设计模式来构建一个可复用的、通用的数据访问对象(DAO)层。在软件开发中,DAO层通常负责与数据库进行交互,执行增删改查等操作。...
在这个特定的压缩包中,我们关注的是“策略设计模式”的实现。策略设计模式是一种行为设计模式,它允许在运行时动态地改变对象的行为。 策略模式的核心思想是将算法族封装到各自独立的类中,使得它们可以互换使用。...
《洛基库(Loki)源码解析:策略设计模式的深度探究》 洛基库(Loki)是一个由C++编程语言实现的开源库,它以其强大的模板设计能力而闻名,尤其在策略设计模式的应用上表现突出。该库不仅为开发者提供了多种实用的...
内容概要:这篇文章介绍了一种利用策略设计模式与OpenCV在Python环境里构建颜色检测系统的实现方法。主要介绍了创建支持自定义颜色目标及容差的检测系统的具体过程和代码细节,并指出了该系统可进一步改进的方向。 ...
【作品名称】:基于C#.NET异步图形验证码识别组件(集成了若快、优优云、打码兔、云打码等平台,准确率95%,速度2-6秒)采用策略设计模式 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设...
本项目将这两种技术结合,并利用策略设计模式和拦截器来实现一个按年份划分的数据库分表策略。下面将详细阐述这个项目中的核心知识点。 1. **SpringMVC**: SpringMVC是Spring框架的一部分,它是一个模型-视图-...
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Java中,策略模式主要通过定义一系列的算法,并将每一个算法封装起来,使它们可以互相替换,让算法独立于使用它的客户而变化。 首先,策略模式的...
设计模式之策略模式 鸭子问题 策略模式是一种经典的设计模式,通过鸭子问题,可以让学习者更好地了解设计模式的概念和实现。策略模式的主要思想是定义一系列的算法,并将每一个算法封装起来,使它们可以相互替换。...
21. **策略设计模式**:定义一系列的算法,并将每一个算法封装起来,使得它们可以互相替换。策略模式让算法的变化独立于使用算法的客户。 以上就是PHP设计模式的一些核心概念和应用场景,每个模式都有其独特的优点...
设计模式中的策略模式。根据《设计模式》一书编写
Java 经典设计模式讲解以及项目实战 设计模式简介:主要介绍各种设计模式的概念和运用场景等 设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼 Spring设计模式简介:主要是讲述...
"策略者"(Strategy)设计模式是其中的一种行为模式,它定义了一系列算法,并将每个算法封装起来,使它们可以相互替换。这种模式让算法的变化独立于使用算法的客户。 在《设计模式-策略者》这篇文章中,作者深入浅...
《策略设计模式在Java编程中的应用——以"吉他英雄"为例》 策略设计模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Java编程中,这种模式的应用广泛且强大,尤其在处理需要动态变化算法或者行为的场景...
策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Java中,策略模式通常用于替换硬编码的条件语句,使代码更加灵活、可扩展和易于维护。下面我们将详细探讨策略模式的核心概念、实现方式以及在实际...
通过学习如何在代码中使用设计模式,可以更高效地构建服务器端应用,在这个过程中,你的PHP编程水平也将逐步提高。...第12章 策略设计模式的灵活性 第13章 职责链设计模式 第14章 利用观察者模式构建多设备CMS