一:简单工厂模式:假设:飞机大战.两种飞机,一种smallPlane,一种bigPlane.构造函数分别是 function SmallPlane(die){this.height = 100;this.width = 100;this.die = function(){console.log(‘die‘)}}function BigPlane(){this.height = 200;this.width = 200;this.die = function(){console.log(‘die‘)}}简单工厂模式可以写一个简单的工厂模式,function factoryPlane (fun){var plane = nullswitch(fun){case SmallPlane : p...
一:抽象工厂模式:抽象工厂模式提供一个创建产品的接口来负责创建相关或依赖的对象,而不具体明确指定具体类,抽象工厂允许客户使用抽象的接口来创建一组相关产品,而不需要知道或关心实际生产出的具体产品是什么。而在上次介绍工厂方法模式中我们介绍到,工厂方法模式可以克服简单工厂设计模式的难以扩展缺点,工厂方法模式中每个具体工厂中只完成单个实例的创建,因此具有很好的可扩展性。但是不论编程上还是现实中,一个工厂只...
一、模式定义简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单来说,也就是由一个工厂类根据传入的参数决定创建出哪一种产品类的实例。二、模式结构 (图片来自博客:https://blog.csdn.net/xingjiarong/article/details/49999121) 简单工厂模式主要有三个部分组成:工厂类(Creator):这个类是简单工厂...
类图:代码: 1publicclass Operation {2 3protecteddouble numberA = 0;4protecteddouble numberB = 0;5 6 7publicdouble getNumberA() {8return numberA;9 }
10publicvoid setNumberA(double numberA) {
11this.numberA = numberA;
12 }
13publicdouble getNumberB() {
14return numberB;
15 }
16publicvoid setNumberB(double numberB) {
17this.numberB = numberB;
18 }
1920protecteddouble getResult()
21 {
...
一、小故事话说十年前,有一个暴发户,他家有三辆汽车——Benz 奔驰、Bmw 宝马、Audi 奥迪,还雇了司机为他开车。不过,暴发户坐车时总是怪怪的:上 Benz 车后跟司机说“开奔驰车!”, 坐上 Bmw 后他说“开宝马车!”,坐上 Audi 说“开奥迪车!”。你一定说:这人有病!直接说 开车不就行了?! 二、分类工厂模式主要是为创建对象提供过渡接口,将创建对象的具体过程屏蔽起来,以提高灵活性的目的。分为三类:简单工厂模式工厂方法模式抽象工厂...
看了几次抽象工厂模式,每次查看都需要重新理解一次,可能是涉及的类和接口比较多,所以比较难缕清的关系吧!在笔者看来,我们还是要吸取其思想而不是生搬硬套。来看下类图:大话设计模式-类图看类图已经很乱了,来简单的梳理下。我们只看接口,这样就不难看出实际上是抽象工厂生产抽象产品的过程,而具体实现都是各自的实现类来做。看下具体的demo:工厂层/*** 工厂接口*/publicinterface IFactory {public IUser createUser();pu...
纠结了好几天,总算是搞懂了点抽象工厂和工厂方法模式的一些区别了。两篇很好的文章:http://blog.csdn.net/superbeck/article/details/4446177http://blog.csdn.net/wyxhd2008/article/details/5597975抽象工厂其实跟工厂方法模式差不多,都遵循开放--封闭原则,使用工厂接口创建派生工厂,进而创建相应对象。但是抽象工厂更加深层,即一个工厂可以创建一系列的产品,而工厂方法模式一般是一个工厂只创建一个产品。换句话说,抽象...
大话设计模式——简单工厂模式--参考自《大话设计模式》需求现在有一个需求,实现一个简单的计算器对于一般的初学者来说可能会这么实现:public class calculate {public static void main(String[] args) {Scanner cin = new Scanner(System.in);System.out.println("请输入数字A:");String numberA = cin.next();System.out.println("请输入运算符号(+,-,*,/):");char op = cin.next().charAt(0);System.out.println("请输入数字...
概念介绍:工厂方法模式: 在学习工厂方法模式之前请首先阅读简单工厂模式工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中.工厂方法模式是简单工厂模式的进一步抽象和推广工厂方法模式的几个需要的对象:1、抽象工厂2、具体工厂:实现抽象工厂接口列出的方法,并且每个工厂对应各自的产品3、抽象产品4、具体产品 工厂方法模式里面的果园的例子,可以改写成工厂方法模式 , 大家可以自己实验。案例...
工厂模式可细分为三种:简单工厂模式工厂方法模式抽象工厂模式 下面对3中模式进行图解,帮助理解:1.简单工厂: 2.工厂方法: 3:抽象方法: 整体图示:原文:https://www.cnblogs.com/kancy/p/10226670.html
本篇是我学习设计模式后的第一篇文章,由于本模式也比较简单,在此我就多啰嗦一下。学习本模式之前请下看一下我的《大话设计模式铺垫》文章,然后回答思考如下问题:1、UML类图看懂了吗?2、java的3大特性真的懂了吗?知道为什么要封装、继承、多态了吗? 对于和我一样的菜鸟而言,我根本就不知道什么是设计模式,那怎么办?学呗。怎么样的学习设计模式呢?看UML类图,然后结合代码加以理解,废话不多刷,先上图: 从图中我独处了如...
创建型模式是为了隔离客户程序与具体类型实例化的依赖关系,通过将实例化职责委托他方法对象的方法,保证客户程序(或外部系统)获得期望具体类型实例的同时不必发生直接的引用。概念:工厂方法是整个创建型模式中最为典型的、也是最具启发效果的,它告诉我们使用一个变化频率比较高的类不比忙着new(),而是要依赖一个抽象的类型(抽象类或者接口)。Delegate也是一个抽象,与抽象类型不同,它是对一类方法的抽象,而不像前两者是对...
概念定义简单工厂(Simple Factory)模式,又称静态工厂方法(Static Factory Method)模式,即定义一个工厂类,根据传入的不同参数创建不同的产品实例,这些实例对象具有共同的父类或接口。应用场景需要创建的产品对象较少,否则工厂逻辑会过于复杂。客户端只关心产品的接口,而不关心对象的具体创建过程。示例代码简单工厂模式由一个工厂类、一个产品接口(或抽象类)和一组实现该接口的具体产品组成。这个工厂类根据传入的参数创造一个...
抽象工厂模式:
提供了一个创建一系列相关的或相互依赖的对象的接口而不需要具体指定它们的类型。Provide an interface for creating families of related or dependent objects without specifying their concrete classes.UML类图:主要包括:AbstractFactory(ContinentFactory):抽象的工厂类,为具体的工厂类声明了一系列的接口。ConcreteFactory(AfricaFactory,AmericaFactory):具体的工厂类,实现了创建具体对象的接口。A...
下面的代码是稍微改进后的工厂模式 abstract class MoveAble{public abstract void run();
}
abstract class Woopen{public abstract void attack();
}abstract class Food{public abstract void eat();
}interface AllFactory{public MoveAble createM();public Woopen createW();public Food createF();
}class Car extends MoveAble{public void run(){System.out.println("Car is runing");}
}class AK47 extends Woopen{pu...