1:策略模式
三个妙计,一个定囊,一个调用者。
private IStrategy straegy;
public Context(IStrategy strategy){
this.straegy = strategy;
}
public void operate(){
this.straegy.operate();
}
context = new Context(new BackDoor());
context.operate()
一个接口,多个实现类
2:代理模式
关键点:多态,同一个接口。
public interface KindWomen {
public void makeEyesWithMan(); //抛媚眼
public void happyWithMan(); //happy what? You know that!
}
public class PanJinLian implements KindWomen {
public void happyWithMan() {
System.out.println("潘金莲在和男人做那个.....");
}
public void makeEyesWithMan() {
System.out.println("潘金莲抛媚眼");
}
}
public class WangPo implements KindWomen {
private KindWomen kindWomen;
public WangPo(){ //默认的话,是潘金莲的代理
this.kindWomen = new PanJinLian();
}
//她可以是KindWomen的任何一个女人的代理,只要你是这一类型
public WangPo(KindWomen kindWomen){
this.kindWomen = kindWomen;
}
public void happyWithMan() {
this.kindWomen.happyWithMan(); //自己老了,干不了,可以让年轻的代替
}
public void makeEyesWithMan() {
this.kindWomen.makeEyesWithMan(); //王婆这么大年龄了,谁看她抛媚眼?!
}
}
public static void main(String[] args) {
//把王婆叫出来
WangPo wangPo = new WangPo();
//然后西门庆就说,我要和潘金莲happy,然后王婆就安排了西门庆丢筷子的那出戏:
wangPo.makeEyesWithMan(); //看到没,虽然表面上时王婆在做,实际上爽的是潘金莲
wangPo.happyWithMan(); }
}
3:单例模式
public class SingletonPattern {
private static final SingletonPattern singletonPattern= new SingletonPattern();
//限制住不能直接产生一个实例
private SingletonPattern(){
}
public synchronized static SingletonPattern getInstance(){
return singletonPattern;
}
}
4:工厂模式:
public static Human createHuman(Class c){
Human human=null;
try{
human = (Human)Class.forName(c.getName()).newInstance();
}catch(InstantiationException e){
}catch (IllegalAccessException e){
}catch (ClassNotFoundException e) {
}
}
重要应用:延迟初始化
5:抽象工厂模式:
一个接口,几个抽象类,然后是几个实现类
public interface Human {}
public abstract class AbstractYellowHuman implements Human {}
public class WhiteFemaleHuman extends AbstractWhiteHuman {}
6:门面模式:
方法的内部封装,暴漏给调用者的只是入口,过程不暴漏
7:适配器模式
一样的作用,不同的接口,不同的实现类。要完成接口的转化对接。
新定义一个接口,继承其中一个,实现另一个接口。
8:模板模式
分享到:
相关推荐
c++设计模式--基于Qt4开源跨平台开发框架(源代码)c++设计模式--基于Qt4开源跨平台开发框架(源代码)c++设计模式--基于Qt4开源跨平台开发框架(源代码)c++设计模式--基于Qt4开源跨平台开发框架(源代码)c++设计模式--...
《设计模式-Java语言中的应用》这本书无疑是学习这一主题的宝贵资源。 首先,我们要理解设计模式的基本分类。设计模式通常分为三类:创建型模式(如工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式),...
12.S8设计模式-1 设计模式简介 13.S8设计模式-2 创建型模式 14.S8设计模式-3 结构型模式 15.S8设计模式-4 行为型模式 16.5 设计模式总结 17.6 二叉树 18.7 算法进阶 2.s8算法1-2 汉诺塔+列表查找 3.s8算法1-3 排序...
《软件设计模式--填空题+简答题(复习7).rar》这个压缩包文件是一个针对《软件设计模式与体系结构》课程的复习资料,重点涵盖了软件设计中的关键概念和实践。设计模式是软件工程中的一种最佳实践,它代表了在特定上...
Java设计模式、程序设计、反射、注解和泛型是Java开发中的核心概念,它们各自在不同的场景下发挥着重要作用,构建出高效、可维护的软件系统。 首先,Java设计模式是面向对象编程中的一种最佳实践,是解决常见问题的...
这个“JAVA设计模式-chm版”资源显然包含了关于Java设计模式的详细信息,便于理解和应用。设计模式是对常见问题的解决方案的标准化描述,它们在软件工程中起到了重要的作用,帮助开发者创建可维护、可扩展且易于理解...
JAVA-设计模式-结构型模式-装饰模式
JAVA-设计模式-创建型模式-工厂模式
JAVA-设计模式-创建型模式-原型模式
JAVA-设计模式-结构型模式-适配器模式
JAVA-设计模式-结构型模式-组合模式
c++设计模式-行为型模式-策略模式;qt工程;c++简单源码; 策略(Strategy)模式的定义:该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于...
设计模式精解- GoF 23种设计模式解析附C++实现源码 懂了设计模式,你就懂了面向对象分析和设计(OOA/D)的精要。反之好像也可能成立。道可道,非常道。道不远人,设计模式亦然如此。 一直想把自己的学习经验以及在...
本资料来源于吕震宇博客,欢迎访问 ...经过整理,方便大家阅读。内容包括: 设计模式(22)-Strategy Pattern 设计模式(21)-Template Method Pattern ...C#设计模式(1) - 面向对象基本概念复习
《C++设计模式--基于Qt4开源跨平台开发框架》涉及到qt的基础知识和容器语法的使用,qt中的设计模式,是很好的资料。现与大家一起分享。免费下载。 由于上传大小有限制,所以分为两部分。 第一部分下载地址: ...
JAVA-设计模式-结构型模式-享元模式
JAVA-设计模式-行为型模式-迭代器模式
JAVA-设计模式-创建型模式-建造者模式