当前位置: 首页 > news >正文

网站设计的目的和功能/营销方案模板

网站设计的目的和功能,营销方案模板,动漫制作专业需要绘画基础吗,成都市城乡建设厅官方网站策略模式定义了算法簇,分别封装起来,让他们之间可以互相替换,此模式然该算法的变化独立于使用算法的客户。 我的初步理解是:感觉像插件,把算法做成插件,要什么功能就插入什么算法,给把青龙偃月刀…

策略模式定义了算法簇,分别封装起来,让他们之间可以互相替换,此模式然该算法的变化独立于使用算法的客户。

我的初步理解是:感觉像插件,把算法做成插件,要什么功能就插入什么算法,给把青龙偃月刀就是关云长,给把青钢剑就是赵云,给把丈八蛇矛就是张飞了。

该模式与面向对象的多态对比,优点在于后期修改的灵活性,不会有继承导致的子类冗余(某个子类不需要父类中的一些方法),以及可以动态添加新属性

 

下面是示例代码(使用书中示例,讲解如何定义各种鸭子,嗯,会飞会叫的鸭子):

一、定义鸭子的各种行为(定义算法簇),一个“飞”行为和一个“叫”行为,分别定义一个接口。

1,“飞”和“叫”接口

飞:

package behavior;public interface FlyBehavior {public void fly();
}

叫:

package behavior;public interface QuackBehavior {public void quack();
}

 

2,接口的具体实现:

用翅膀飞:

package behavior;public class FlyWithWings implements FlyBehavior {@Overridepublic void fly() {// TODO Auto-generated method stubSystem.out.println("我用翅膀飞!");}}

不会飞:

package behavior;public class FlyNoWay implements FlyBehavior {@Overridepublic void fly() {// TODO Auto-generated method stubSystem.out.println("我不会飞,就这样!");}}

呱呱叫:

package behavior;public class QuackWithGG implements QuackBehavior {@Overridepublic void quack() {// TODO Auto-generated method stubSystem.out.println("呱呱叫!");}}

吱吱叫:

package behavior;public class QuackWithZZ implements QuackBehavior {@Overridepublic void quack() {// TODO Auto-generated method stubSystem.out.println("吱吱叫!");}}

 

二、定义和构造具体的鸭子

1、定义鸭子的父类:

package model;import behavior.FlyBehavior;
import behavior.QuackBehavior;public abstract class Duck {private FlyBehavior flyBehavior;private QuackBehavior quackBehavior;public FlyBehavior getFlyBehavior() {return flyBehavior;}public void setFlyBehavior(FlyBehavior flyBehavior) {this.flyBehavior = flyBehavior;}public QuackBehavior getQuackBehavior() {return quackBehavior;}public void setQuackBehavior(QuackBehavior quackBehavior) {this.quackBehavior = quackBehavior;}public void perfomFly() {flyBehavior.fly();}public void perfomQuack() {quackBehavior.quack();}
}

 

2、具体构造一个鸭子:

package model;import behavior.FlyBehavior;
import behavior.FlyNoWay;
import behavior.FlyWithWings;
import behavior.QuackBehavior;
import behavior.QuackWithGG;
import behavior.QuackWithZZ;public class DownNoDuck extends Duck {public DownNoDuck(FlyBehavior fly, QuackBehavior quack) {setFlyBehavior(fly);setQuackBehavior(quack);}/*** @param args*/public static void main(String[] args) {Duck duck1 = new DownNoDuck(new FlyNoWay(), new QuackWithZZ());Duck duck2 = new DownNoDuck(new FlyWithWings(), new QuackWithGG());duck1.perfomFly();duck1.perfomQuack();duck2.perfomFly();duck2.perfomQuack();}}

 

总结:从代码中看出,这里将行为接口定义成了Duck的属性,然后使用具体的行为去构造具体的Duck,这样,就得到了我们想要的Duck。而且我们还可以在构造玩Duck后动态地改变Duck的属性,这就是灵活性。

上面示例代码将打印:

我不会飞,就这样!
吱吱叫!
我用翅膀飞!
呱呱叫!

 

 

转载于:https://www.cnblogs.com/myfjd/p/3543332.html

http://www.lbrq.cn/news/1417393.html

相关文章:

  • 做网站加载速度有什么方法/中国楼市最新消息
  • 江阴做网站/44555pd永久四色端口
  • 建设网上购物网站/徐州百度运营中心
  • 微信商城网站如何做/5g站长工具查询
  • 个人网站首页布局/腾讯云域名注册官网
  • xml天气预报网站怎么做/北京网聘咨询有限公司
  • 数据网站有哪些/推广专员是做什么的
  • 旅游网站结构图/北京网站建设公司优势
  • 网站建设太金手指六六十八/中国十大网络营销平台
  • 响应式网站开发教程/比较靠谱的电商培训机构
  • 济南网站设计建设/北京做的好的seo公司
  • 公众号视频网站怎么做/如何做网站建设
  • 网站制作软件工程师/广州seo顾问seocnm
  • 判断网站是什么系统做的/软件培训机构
  • 怎么做网站横幅/杭州龙席网络seo
  • 苏州画廊网站建设/站长工具网址查询
  • soho建网站/山东关键词快速排名
  • 点网站建设/北京seo案例
  • h5响应式网站设计方案/站长工具星空传媒
  • 桂林小程序制作/郑州seo排名第一
  • 互联网信息投诉平台入口/seo变现培训
  • 常用网站字体/竞价排名推广
  • 为什么做红酒网站/市场策划方案
  • 有关网站建设的外文文献/精准营销推广方案
  • 做网站费用多少/随州seo
  • 做违法网站的后果/seo系统
  • qifeiye做的网站如何/seo网站外链工具
  • 广东商城网站建设价格低/专业做网站建设的公司
  • 企业信息网站模板/买卖网交易平台
  • 番禺做网站费用/google开户
  • Android 组件封装实践:从解耦到架构演进
  • Java开发MCP服务器
  • 快速掌握Hardhat与Solidity智能合约开发
  • 【Linux】IO多路复用
  • 电路方案分析(二十二)适用于音频应用的25-50W反激电源方案
  • RK3568 NPU RKNN(四):RKNN-ToolKit2性能和内存评估