java设计模式----真实世界的模式
设计模式的定义:
模式是在某情境下,针对某问题的某种解决方案
反模式:
告诉你如何采用一个不好的解决方案解决一个问题
要点:
1、让设计模式自然而然地出现在你的设计中,而不是为了使用而使用
2、设计模式并非僵化的教条;你可以依据自己的需要采用或调整
3、总数使用满足需要的最简单解决方案,不管它用不用模式
4、学习设计模式的类目,可以帮你自己熟悉这些模式以及它们之间的关系
5、模式的分类(或类目)是将模式分成不同的族群,如果这么做对你有帮助,就采用把
6、你必须相当专注才能够成为一个模式的作家:这需要实践也需要耐心,同时还必须乐意做大量的精化工作
7、请牢记:你所遇到大多数的模式都是现有模式的变体,而非新的模式
8、模式能够为你带来的最大好处之一是:让你的团队拥有共享词汇
9、任何社群都有自己的行话,模式社群也是如此。别让这些行话绊着,在读完这本书之后,你已经能够应用大部分的行话了
装饰者:包装一个对象,以提供新的行为
状态:封装了基于状态的行为,并使用委托在行为之间切换
迭代器:在对象对的集合之中游走,而不是暴露集合的实现
外观:简化一群类的接口
策略:封装可以互换的行为,并使用委托来决定要使用哪一个
代理:包装对象,以控制对此对象的访问
工厂方法:由子类决定要创建的具体类是哪一个
适配器:封装对象,并提供不同的接口
观察者:让对象能够在状态改变时被通知
模板方法:由子类决定如何实现一个算法中的步骤
组合:客户用一致的方式处理对象集合和单个对象
单件:确保有且只有一个对象被创建
抽象工厂:允许客户创建对象的家族,而无需指定他们的具体类
命令:封装请求成为对象
java设计模式----真实世界的模式的更多相关文章
- Java设计模式——装饰者模式
JAVA 设计模式 装饰者模式 用途 装饰者模式 (Decorator) 动态地给一个对象添加一些额外的职责.就增加功能来说,Decorator 模式相比生成子类更为灵活. 装饰者模式是一种结构式模式 ...
- 浅析JAVA设计模式之工厂模式(一)
1 工厂模式简单介绍 工厂模式的定义:简单地说,用来实例化对象,取代new操作. 工厂模式专门负责将大量有共同接口的类实例化.工作模式能够动态决定将哪一个类实例化.不用先知道每次要实例化哪一个类. 工 ...
- JAVA设计模式--装饰器模式
装饰器模式 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构.这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装. 这种模式创建了一个装饰 ...
- 折腾Java设计模式之建造者模式
博文原址:折腾Java设计模式之建造者模式 建造者模式 Separate the construction of a complex object from its representation, a ...
- 折腾Java设计模式之备忘录模式
原文地址:折腾Java设计模式之备忘录模式 备忘录模式 Without violating encapsulation, capture and externalize an object's int ...
- 折腾Java设计模式之状态模式
原文地址 折腾Java设计模式之状态模式 状态模式 在状态模式(State Pattern)中,类的行为是基于它的状态改变的.这种类型的设计模式属于行为型模式.在状态模式中,我们创建表示各种状态的对象 ...
- 折腾Java设计模式之模板方法模式
博客原文地址:折腾Java设计模式之模板方法模式 模板方法模式 Define the skeleton of an algorithm in an operation, deferring some ...
- 折腾Java设计模式之访问者模式
博客原文地址:折腾Java设计模式之访问者模式 访问者模式 Represent an operation to be performed on the elements of an object st ...
- 折腾Java设计模式之命令模式
博客原文地址 折腾Java设计模式之命令模式 命令模式 wiki上的描述 Encapsulate a request as an object, thereby allowing for the pa ...
随机推荐
- BNUOJ 5227 Max Sum
Max Sum Time Limit: 1000ms Memory Limit: 32768KB This problem will be judged on HDU. Original ID: ...
- javascript前端下载
<html> <head> <title>测试标题</title> </head> <body> <div> 测试页 ...
- POJ 1543 Perfect Cubes
Perfect Cubes Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 12595 Accepted: 6707 De ...
- HackerRank# Bricks Game
原题地址 DP很简单,懒得压缩空间了,反正都能过 #include <cmath> #include <cstdio> #include <vector> #inc ...
- Unix(AIX,Linux)
AIX全名为(Advanced Interactive Executive),它是IBM公司的UNIX操作系统. 虽然Linux和aix都是Unix兼容的操作系统,但他们在不同的领域存在各自的特点和差 ...
- VB6 post图片
在VBA中怎样用XMLhttp 模拟http上传二进制文件? https://www.zhihu.com/question/40974557 作者:付杨 链接:https://www.zhihu.co ...
- vi 和vim 的区别以及用法
具体用法参考:http://blog.csdn.net/xuesnowce/article/details/53117352 它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所 ...
- csv文件导出
参考博客:http://www.cnblogs.com/mingforyou/p/4103132.html 导入jar包javacsv.jar 链接:http://pan.baidu.com/s/1i ...
- 社区发现(Community Detection)算法
作者: peghoty 出处: http://blog.csdn.net/peghoty/article/details/9286905 社区发现(Community Detection)算法用来发现 ...
- Spring的Hello World工程
通过Spring的Hello World工程研究以下几个点: 0.如何创建工程及引入依赖. 1.通过Spring的beans.xml实现依赖注入,动态创建实例. 2.了解Spring的工作原理. 具体 ...