引用:STRATEGY—跟不同类型的MM约会,要用不同的策略,有的请电影比较好,有的则去吃小吃效果不错,有的去海边浪漫最合适,但是目的都是为了得到MM的芳心,我的追MM锦囊中有好多Strategy哦。
策略模式:策略模式针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式把行为和环境分开。环境类负责维持和查询行为类,各种算法在具体的策略类中提供。由于算法和环境独立开来,算法的增减,修改都不会影响到环境和客户端。
以上为转载
.
看了这个果然,有助于提高对设计模式得理解.但讲得比较大概.我想详细得讲解一下.
跟MM 约会的活动,开始的时候要有一定计划,所谓得计划就是要有一定的目标,首先要明确活动的大体框架,看电影?买东西?滑雪?,想好了之后我就写个追MM得基本类把.代码设计如下:
public class CheasingGirls{
public void movie(){
//活了那么久了 ,怎么和MM看电影,自己想去.
}
public void shopping(){
//活了那么久了 ,怎么和MM购物自己想去.
}
}
哈哈.基本计划有了,具体想如果 追 MM A 得话,我们就可以写一个类来继承与它.
public class CheasingGirlsA extends CheasingGirls{
//可以重新定计划(覆盖父方法)
public void movie(){
//活了那么久了 ,怎么和MM看电影,自己想去.
}
//可以重新定计划(覆盖父方法)
public void shopping(){
//活了那么久了 ,怎么和MM购物自己想去.
}
}
但是问题出来了...对我这样老实的人来说 ,一个也就够了,对 想追很多MM得人来说,那就很辛苦了..还可能出现问题,并不是每个MM都喜欢看电影,滑雪等等.所以我们继承CheasingGirls类就会出现.要覆盖 父方法的情况 如追MM B
public class CheasingGirlsB extends CheasingGirls{
//可以重新定计划(覆盖父方法)
public void movie(){
//什么都不做
}
//可以重新定计划(覆盖父方法)
public void shopping(){
//什么都不做
}
}
如果我要追 几十个.那都要重写 .要累死啊 ..所以 我就把,movie 和 shopping的方法 改为用接口来做 .
public interface Movie{
public void doMovie();
}
public interface Shopping{
public void doShopping();
}
改变下我追MM的计划类
public class CheasingGirls{
Movie movie;
Shopping shopping;
public void movie(){
movie.doMovie();
}
public void shopping(){
shopping.doShopping();
}
}
看看这样设计带来的好处,我可以写几套不同的看电影计划购物计划,而对代码没有影响.可以重用 ,多方便啊.....以后组组合合就可以了.还回为追MM发愁啊?
代码如下是:
//电影方案1
public class movie1 implements Movie{
public void doMovie(){
//方案一具体 实施方案.
}
}
如果我们在泡MM A 之前,定义好计划得话 代码如下
public class CheasingGirlsA extends CheasingGirls{
public CheasingGirlsA(){
movie = new movie1();
}
}
但这么做 有缺点,,一旦 MM 不喜欢的话,临时就不能换计划了......MM 真难搞定呢...所以我们就必须想个方法,在约会时可以改变计划.
我们就在约会得时候改变.
改变下我追MM的计划类
public class CheasingGirls{
Movie movie;
Shopping shopping;
public void movie(){
movie.doMovie();
}
public void shopping(){
shopping.doShopping();
}
public void setMovie(Movie movie){
this.movie = movie;
}
}
在追MM得过程中 我就可以这么写
^_^.看电影得计划成功了....希望大家都可以追成你心中得MM.
CheasingGirls cheasingGirls = new CheasingGirls();
//看电影计划 movie1
cheasingGirls .setMovie(new movie1());
cheasingGirls .doMovie();
分享到:
相关推荐
《设计模式详解》 设计模式是软件开发中的宝贵经验总结,它们是解决特定问题的通用解决方案,被广泛应用于各种编程语言中。以下是一些主要设计模式的解释和应用实例: 1. 单一职责原则(Single Responsibility ...
#### 标题和描述中的知识点详解 **标题:“java错误处理:java.lang.OutOfMemoryError: Java heap space”** - **java.lang.OutOfMemoryError**: 这是一个运行时异常,表示JVM在执行过程中遇到了内存不足的情况。 ...
Windows API函数大全---附:windows运行命令详解.mht 我保存的是网页的格式。
Selenium:Selenium定位元素策略详解.docx
Appium:Appium元素定位策略详解
Linux网络配置:Nat和桥接模式详解.doc
实例详解ISA防火墙策略元素:ISA2006系列之五.pdf
分支与合并策略详解.docx
**PhotoView库详解** 在移动应用开发中,尤其是在Android平台上,我们经常需要处理图片的显示,比如用户在浏览照片或者查看大图时的需求。PhotoView是Android平台上的一个开源库,它提供了一个可缩放的ImageView,...
《OGRE设计模式详解》是一本深度探讨游戏引擎OGRE设计模式的专业书籍,它为开发者提供了深入了解和掌握OGRE框架的宝贵资源。OGRE(Object-Oriented Graphics Rendering Engine)是一个开源的3D渲染引擎,广泛应用于...
电子商务之价格优化算法:遗传算法:遗传算法中的选择策略详解.docx
ARB治疗糖尿病肾病策略详解.ppt
[Linux服务器安全策略详解].曹江华.扫描版(jb51.net)-4
策略模式设计模式之策略模式详解。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。
本文以举例形式来讲解,mm模块的两种标准的审批策略,无分类的审批策略和含分类的审批策略
本文实例讲述了Python设计模式之策略模式。分享给大家供大家参考,具体如下: 策略模式(Strategy Pattern):它定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户. ...
Android_3D游戏开发技术详解与典型案例.pdf:共四个部分 第一部分除外 其余部分免费。内附代码(下载时请下载完整)。
策略路由及相关配置详解.doc