依赖倒转原则讲的是:要依赖于抽象,不要信赖于实现。 这是为实现开闭原则的一种手段。
比如之前的代码,我们的主程序中:
Graph g = new xxx();
......
g.getArea();
对g的声明则是Graph,而非具体的三角或者原型。我们下面的一切对g的操作,都是依赖Graph,而非对具体的图形的依赖。但只有在初始化g的时候,我们必须制定三角Graph g = new Triangl()或者圆形Graph g = new Circle();这就和依赖倒转原则冲突。由此引入工厂模式。
简单工厂模式:
package sty;
public class GraphFactory {
public static Graph createGraph(String type) {
Graph g = null;
if(type.equals("triangle"))
g = new Triangle();
if(type.equals("Circle"))
g = new Circle();
return g;
}
}
抽象工厂模式,直接从别人哪儿拷贝来的代码
-
-
public
interface
Plant {
-
}
-
-
-
public
class
PlantA
implements
Plant {
-
-
public
PlantA() {
-
System.out.println(
" create PlantA ! "
);
-
}
-
-
public
void
doSomething() {
-
System.out.println(
" PlantA do something "
);
-
}
-
}
-
-
public
class
PlantB
implements
Plant {
-
public
PlantB() {
-
System.out.println(
" create PlantB ! "
);
-
}
-
-
public
void
doSomething() {
-
System.out.println(
" PlantB do something "
);
-
}
-
}
-
-
-
public
interface
Fruit {
-
}
-
-
-
public
class
FruitA
implements
Fruit {
-
public
FruitA() {
-
System.out.println(
" create FruitA ! "
);
-
}
-
-
public
void
doSomething() {
-
System.out.println(
" FruitA do something "
);
-
}
-
}
-
-
public
class
FruitB
implements
Fruit {
-
public
FruitB() {
-
System.out.println(
" create FruitB ! "
);
-
}
-
-
public
void
doSomething() {
-
System.out.println(
" FruitB do something "
);
-
}
-
}
-
-
-
public
interface
AbstractFactory {
-
public
Plant createPlant();
-
-
public
Fruit createFruit();
-
}
-
-
-
public
class
FactoryA
implements
AbstractFactory {
-
public
Plant createPlant() {
-
return
new
PlantA();
-
}
-
-
public
Fruit createFruit() {
-
return
new
FruitA();
-
}
-
}
-
-
public
class
FactoryB
implements
AbstractFactory {
-
public
Plant createPlant() {
-
return
new
PlantB();
-
}
-
-
public
Fruit createFruit() {
-
return
new
FruitB();
-
}
-
}
分享到:
相关推荐
3、依赖倒转原则【DEPENDENCE INVERSION PRINCIPLE】:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。即针对接口编程,不要针对实现编程。 4、接口隔离原则...
3、依赖倒转原则(Dependence Inversion Principle) 这个是开闭原则的基础,具体内容:真对接口编程,依赖于抽象而不依赖于具体。 4、接口隔离原则(Interface Segregation Principle) 这个原则的意思是:使用...
第1章 模式的简史和形而上学 ...第8章 依赖倒转原则 第9章 接口隔离原则 第10章 合成、聚合复用原则 第11章 迪米特法则 第12章 简单工厂模式 第13章 工厂方法模式 第14章 抽象工厂模式 第15章 单例模式 第16章 .......
依赖倒转原则 7 (三)装饰模式 7 (四)代理模式 9 (五)工厂方法模式 11 (六)原型模式 13 (七)模板方法模式 15 迪米特法则 16 (八)外观模式 16 (九)建造者模式(生成器模式) 19 (十)观察者模式 23 ...
22第二十二讲备忘录模式 23第二十三讲状态模式 24第二十四讲命令模式 25第二十五讲访问者模式 26第二十六讲开放封闭原则 27第二十七讲单一职责原则 28第二十八讲里氏代换原则 29第二十九讲依赖倒转原则 30第三十讲...
2.1.5依赖倒转原则 2.1.6接口隔离原则 2.1.7合成复用原则 2.1.8迪米特法则 2.2实训实例 2.2.1单一职责原则实例分析 2.2.2开闭原则实例分析 2.2.3里氏代换原则实例分析 2.2.4依赖倒转原则实例分析 2.2.5接口...
所有的设计模式Java实现。 第一讲:简单工厂模式 第二讲:工厂方法模式 第三讲:抽象工厂模式 第四讲:工厂模式在开发中的运用 ...第二十八讲:依赖倒转原则 第二十九讲:迪米特法则 第三十讲:设计模式总结
3、依赖倒转原则(Dependence Inversion Principle) 这个是开闭原则的基础,对接口编程,依赖于抽象而不依赖于具体。 4、接口隔离原则(Interface Segregation Principle) 使用多个隔离的借口来降低耦合度...
第8章 依赖倒转原则 第9章 接口隔离原则 第10章 合成/聚合复用原则 第11章 迪米特法则 第三部分 第12章 简单工厂模式 第13章 工厂方法模式 第14章 抽象工厂模式 第15章 单例模式 第16章 专题:单例模式与MX记录 第17...
3、依赖倒转原则(Dependence Inversion Principle) 这个是开闭原则的基础,对接口编程,依赖于抽象而不依赖于具体。 4、接口隔离原则(Interface Segregation Principle) 使用多个隔离的借口来降低耦合度。 5...
3、依赖倒转原则(Dependence Inversion Principle) 这个是开闭原则的基础,具体内容:真对接口编程,依赖于抽象而不依赖于具体。 4、接口隔离原则(Interface Segregation Principle) 这个原则的意思是:使用...
设计模式七大原则(单一职责、接口隔离、依赖倒转、里氏替换、开闭原则、迪米特法则、合成复用)、UML类图(类的依赖、泛化和实现、类的关联、聚合和组合) 23种设计模式包括:创建型模式:单例模式(8种实现)、抽象工厂...
七种设计模式详解讲解文档-面试必备:策略设计模式,单例设计模式,单一职责模式,简单工厂设计模式,开放封闭设计模式,依赖倒转原则,装饰者模式。
DIP(依赖倒转原则,Dependence Inversion Principle):要针对接口编程,不要针对实现编程。 LoD(迪米特法则,Law of Demeter):只与你直接的朋友通信,而避免和陌生人通信。 核心本质: 实例化对象,用工厂方法...
Java接口 com.javapatterns.liskov 里氏代换原则 com.javapatterns.dip 依赖倒转原则 com.javapatterns.isp 接口隔离原则 com.javapatterns.carp 组合/聚合复用原则 com.javapatterns.lod ...
这就符合了设计模式中的“开放--封闭”原则,依赖倒转原则,里氏代换原则等等。 具体代码如下: 抽象工厂角色: 1namespace AbstractFactory 2{ 3 //抽象工厂类, 4 public abstract class AbstractClothes 5...
Java语言的接口 抽象类 里氏代换原则 依赖倒转原则 接口隔离原则 合成/聚合复用原则 迪米特法则 简单的工厂 工厂的方法 抽象工程 单例(singleton) 原始模型 适配器 装饰 代理 门面模式 不变模式 策略模式 模板方法
Java语言的接口 抽象类 里氏代换原则 依赖倒转原则 接口隔离原则 合成/聚合复用原则 迪米特法则 简单的工厂 工厂的方法 抽象工程 单例(singleton) 原始模型 适配器 装饰 代理 门面模式 不变模式 策略模式 模板方法
com.javapatterns.dip 依赖倒转原则 com.javapatterns.doubledispatch 专题:单分派与多分派 com.javapatterns.facade 门面模式 com.javapatterns.factorymethod 工厂方法模式 com.javapatterns.flyweight 享元...
工厂模式 意义 工厂模式 实现了创建者和调用者的分离。...DIP(依赖倒转原则,Dependence Inversion Principle):要针对接口编程,不要针对实现编程(不要让类继承具体类,而是继承抽象类或者是实现 i