如果在适合用策略模式的情况下用简单工厂模式,如果新增加策略就要修改工厂类,而这个可能会导致其他错误和比较繁琐,而如果使用了策略模式,只要将新增加的策略当做参数传递到Context类中即可。 用途不一样 工厂是创建型模式,它的作用就是创建对象; 策略是行为型模式,它的作用是让一个对象在许多行为中选择一种行为; 关...
1.首先看一下接收的参数:简单工厂类中的Ffactory.getStep() 方法接收的是字符串,返回的是一个 FAbsStep(抽象工厂类)对象;而 策略模式Environment 类初始化时需要接收一个 new TshangqiStep()(具体策略类)对象。 2.简单工厂类中是根据接收的条件创建一个相应的对象,而 Context 类接收的是一个对象,可以调用方法...
简单工厂模式:又称静态工厂方法模式。 工厂方法模式:又称多态性工厂模式。 抽象工厂模式:又称 工具箱模式。 简单工厂模式的举例 //抽象产品角色publicinterfaceCar{publicvoiddrive();}//具体产品角色publicclassBenzimplementsCar{publicvoiddrive(){System.out.println("Driving Benz ");}}publicclassBmwimplementsCar{...
1)简单工厂模式下调用者必须知道顶级父类FatherClass 这个问题。简单工厂模式下使用FatherClass obj = operateFactory.createInstance() 策略模式的引入,使得全程通过operationContext这一个对象,不必关心顶级父类 FatherClass ,直接创建一个operationContext对象搞定。全程操作这个operationContext对象即可。(实际上就是把原来通过...
书接上文讲的策略+简单工厂模式,本次我们又引入了模板方法,将一些公用的方法定义在抽象类的方法中,不同子类各自实现各自的逻辑。 我们这次还是根据不同的渠道类型进行通知客户(渠道类型有短信sms、邮件email、钉钉dingTalk) 首先就是要有策略接口,接口里面要有一个方法就是通知的方法 ...
二、工厂模式 主要分为三类 简单工厂模式 工厂方法模式 抽象工厂模式 2.1 简单工厂模式 class Animal: def __init__(self, name): self.name = name def speak(self): pass class Dog(Animal): def speak(self): return "wang!" class Cat(Animal): def speak(self): return "miao!" class AnimalFacto...
2、设计模式分类 3、简单工厂模式 简单工厂模式确实挺简单,直接上例子。 首先定义接口。 public interface Animal { void sayHello(); } 1. 2. 3. 然后定义Animal的实现,Cat、Dog、Pig。 class Cat implements Animal{ @Override public void sayHello() { ...
简单工厂模式和策略模式是大部分程序员,在学习设计模式时接触得最早,或在工作实践中也是用得相对比较多的两个设计模式。 一个是创建型,另一个是行为型,然而两种不同类型的模式,在某些地方也有一丝的相似之处,同时在某种场景下结合使用,能起到特别好的效果。
应用策略模式的主要目的是让算法的变化独立于使用算法的客户端。策略模式将算法的定义与算法的使用分离开来,这样可以让算法的定义更加灵活,能够根据需要动态地改变。 简单工厂模式 简单工厂模式是一种创建型模式,它由一个工厂类负责创建不同类型的对象。简单工厂模式的核心思想是将对象的创建过程封装起来,客户端只需要...
1. 简单工厂模式(Simple Factory Pattern): 简单工厂模式是由一个工厂类根据传入的参数决定创建哪种产品的设计模式。它包含三个角色:工厂类负责创建产品,产品类定义产品的具体实现,客户端通过工厂类获取产品对象。简单工厂模式将对象的创建与使用进行了分离,增加了灵活性,但是违反了开闭原则,因为每次新增产品都需要修改...