最常用的四种设计模式

下面列举四种最常用的设计模式

一、Strategy模式 
1、两大原则 
Strategy 模式体现了如下的两大原则:

1,针对接口编程,而不是针对实现编程。

2,多用组合,少用继承。 
2、 例子:

二、Iterator模式 

提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。 
这种设计模式非常普遍, 
比如Java里面的: 
public interface Iterator { 
boolean hasNext(); 
Object next(); 
void remove(); 

以及C++ STL里面的 iterator使用 ++ 访问。

三、Singleton模式 

四、Factory Method模式 
Factory Method模式在不同的子工厂类生成具有统一界面接口的对象,一方面,可以不用关心产品对象的具体实现,简化和统一Client调用过程;另一方面,可以让整个系统具有灵活的可扩展性。

 1 abstract class BallFactory{
 2 protected abstract Ball makeBall(); //Factory Method
 3 }
 4 class BasketballFact extends BallFactory{
 5 public Ball makeBall(){    //子类实现Factory Method决定实例化哪一个类的
 6  return new Basketball();
 7 }
 8 }
 9 class FootballFact extends BallFactory{
10 public Ball makeBall(){   //子类实现Factory Method决定实例化哪一个类的
11  return new Football();
12 }
13 }
14 class Basketball extends Ball{
15 public void play(){
16  System.out.println("play the basketball");
17 }
18 }
19 class Football extends Ball{
20 public void play(){
21  System.out.println("play the football");
22 }
23 }
24 abstract class Ball{
25 protected abstract void play();
26 }
27 public class test{
28 public static void main(String[] args){
29  BallFactory ballFactory=new BasketballFact();
30  Ball basketball=ballFactory.makeBall();
31  basketball.play();
32  
33  ballFactory=new FootballFact();
34  Ball football=ballFactory.makeBall();
35  football.play();
36 }
37 }   
时间: 2024-11-25 10:53:34

最常用的四种设计模式的相关文章

iOS开发中常用的几种设计模式

下面是iOS开发中比较常用的几种设计模式.详情如下所示: (一)代理模式 应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现.优势:解耦合敏捷原则:开放-封闭原则实例:tableview的 数据源delegate,通过和protocol的配合,完成委托诉求.列表row个数delegate自定义的delegate (二)观察者模式应用场景:一般为model层对,controller和view进行的通知方式,不关心谁去接收,只负责发布信息.优势:解耦合敏捷原则:接口隔离原

关于W3Cschool定义的设计模式--常用的9种设计模式的介绍

一.设计模式 tip:每种设计模式,其实都是为了更高效的,更方便的解决在面对对象编程中所遇到的问题. 什么是设计模式: 是一套经过反复使用.多人知晓的.经过分类的.代码设计经验的总结 为什么使用设计模式: 为了代码的可重用性.让代码更容易被他人理解.保证代码的可靠性.设计模式使代码的编写真正的工程化:设计模式是软件工程的基石脉络,如同大厦的结构. 有哪些设计模式(来自W3Cschool,23种): 构造器模式,模块化模式,暴露模块模式,单例模式,中介者模式,原型模式,命令模式,外观模式,工厂模式

下面给出了四种设计模式的作用: 外观(F

下面给出了四种设计模式的作用: 外观(Fa?ade :为子系统中的一组功能调用提供一个一致的接口,这个接口使得这一子系统更加容易使用: 装饰(Decorate):当不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些额外的功能: 单件(Singleton :保证一个类仅有一个实例,并提供一个访问它的全局访问点: 模板方法(Template Method :在方法中定义算法的框架,而将算法中的一些操作步骤延迟到子类中实现. 请根据下面叙述的场景选用适当的设计模式.若某面向对象系统中的某些类有

产品经理常用的四种需求收集方法简述

A 客户访谈 客户访谈是通过面对面的交流方式了解具体客户对产品.对流程的需求.观点和看法. 客户访谈的内容可以包括: 1.了解哪些需求对客户比较重要. 2.就了解到的一些需求请客户协助进行优先排序. 3.就问题改进建议的初步想法与客户进行讨论,确认是否能够满足客户需求. 客户访谈的优点包括: 1.由于是面对面的交流,因此在调查内容上更加灵活,可以随时根据问答状况就一些内容进行深入讨论,获得更多的客户感受. 2.客户可以再调查人的协助下,进行一些较为复杂的问卷调查. 3.客户访谈方式的适用面广,可

iOS中常用的四种数据持久化方法简介

iOS中常用的四种数据持久化方法简介 iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 [NSUserDefaults standardUserDefaults]就够用了 @interface User : NSObject <NSCoding>@property (nonatomic, assign) NSInteger userID;@property (nonatomic,

最常用的四种大数据分析方法

本文主要讲述数据挖掘分析领域中,最常用的四种数据分析方法:描述型分析.诊断型分析.预测型分析和指令型分析. 当刚涉足数据挖掘分析领域的分析师被问及,数据挖掘分析人员最重要的能力是什么时,他们给出了五花八门的答案. 其实我想告诉他们的是,数据挖掘分析领域最重要的能力是:能够将数据转化为非专业人士也能够清楚理解的有意义的见解. 使用一些工具来帮助大家更好的理解数据分析在挖掘数据价值方面的重要性,是十分有必要的.其中的一个工具,叫做四维分析法. 简单地来说,分析可被划分为4种关键方法. 下面会详细介绍

【学习笔记】——原生js中常用的四种循环方式

一.引言 本文主要是利用一个例子,讲一下原生js中常用的四种循环方式的使用与区别: 实现效果: 在网页中弹出框输入0   网页输出"欢迎下次光临" 在网页中弹出框输入1   网页输出"查询中--" 在网页中弹出框输入2   网页输出"取款中--" 在网页中弹出框输入3   网页输出"转账进行中--" 在网页中弹出框输入其他字符   网页输出"无效按键" 四种循环: for循环 while循环 for  in

Java中常用的四种线程池

在Java中使用线程池,可以用ThreadPoolExecutor的构造函数直接创建出线程池实例,如何使用参见之前的文章Java线程池构造参数详解.不过,在Executors类中,为我们提供了常用线程池的创建方法.接下来我们就来了解常用的四种: newFixedThreadPool 首先,看一下这种线程池的创建方法: public static ExecutorService newFixedThreadPool(int nThreads) { return new ThreadPoolExec

PHP常用的三种设计模式

本文为大家介绍常用的三种php设计模式:单例模式.工厂模式.观察者模式,有需要的朋友可以参考下. 一.首先来看,单例模式 所谓单例模式,就是确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例,即在应用程序中只会有这个类的一个实例存在.通常单例模式用在仅允许数据库访问对象的实例中,从而防止打开多个数据库连接,单例模式是一种常见的设计模式,在计算机系统中,线程池.缓存.日志对象.对话框.打印机.数据库操作.显卡的驱动程序常被设计成单例. 一个单例类应包括以下几点:和普通类不同,单例类不能