ASP.NET 设计模式中依赖倒置原则
1概述编辑
2意图编辑
3代码实现编辑
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
publicclassHondaCar{publicvoidRun(){Console.WriteLine("本田开始启动了");}publicvoidTurn(){Console.WriteLine("本田开始转弯了");}publicvoidStop(){Console.WriteLine("本田开始停车了");}}publicclassFordCar{publicvoidRun(){Console.WriteLine("福特开始启动了");}publicvoidTurn(){Console.WriteLine("福特开始转弯了");}publicvoidStop(){Console.WriteLine("福特开始停车了");}}publicclassAutoSystem{publicenumCarType{Ford,Honda};privateHondaCarhcar=newHondaCar();privateFordCarfcar=newFordCar();privateCarTypetype;publicAutoSystem(CarTypetype){this.type=type;}privatevoidRunCar(){if(type==CarType.Ford){fcar.Run();}else{hcar.Run();}}privatevoidTurnCar(){if(type==CarType.Ford){fcar.Turn();}else{hcar.Turn();}}privatevoidStopCar(){if(type==CarType.Ford){fcar.Stop();}else{hcar.Stop();}}} |
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
publicclassAutoSystem{publicenumCarType{Ford,Honda,Bmw};HondaCarhcar=newHondaCar();FordCarfcar=newFordCar();BmwCarbcar=newBmwCar();privateCarTypetype;publicAutoSystem(CarTypetype){this.type=type;}privatevoidRunCar(){if(type==CarType.Ford){fcar.Run();}elseif(type==CarType.Honda){hcar.Run();}elseif(type==CarType.Bmw){bcar.Run();}}privatevoidTurnCar(){if(type==CarType.Ford){fcar.Turn();}elseif(type==CarType.Honda){hcar.Turn();}elseif(type==CarType.Bmw){bcar.Turn();}}privatevoidStopCar(){if(type==CarType.Ford){fcar.Stop();}elseif(type==CarType.Honda){hcar.Stop();}elseif(type==CarType.Bmw){bcar.Stop();}}} |
4结构图编辑

|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
publicinterfaceICar{voidRun();voidTurn();voidStop();}publicclassBmwCar:ICar{publicvoidRun(){Console.WriteLine("宝马开始启动了");}publicvoidTurn(){Console.WriteLine("宝马开始转弯了");}publicvoidStop(){Console.WriteLine("宝马开始停车了");}}publicclassFordCar:ICar{publicvoidRun(){Console.WriteLine("福特开始启动了");}publicvoidTurn(){Console.WriteLine("福特开始转弯了");}publicvoidStop(){Console.WriteLine("福特开始停车了");}}publicclassHondaCar:ICar{publicvoidRun(){Console.WriteLine("本田开始启动了");}publicvoidTurn(){Console.WriteLine("本田开始转弯了");}publicvoidStop(){Console.WriteLine("本田开始停车了");}}publicclassAutoSystem{privateICaricar;publicAutoSystem(ICaricar){this.icar=icar;}privatevoidRunCar(){icar.Run();}privatevoidTurnCar(){icar.Turn();}privatevoidStopCar(){icar.Stop();}} |
ASP.NET 设计模式中依赖倒置原则的更多相关文章
- 北风设计模式课程---依赖倒置原则(Dependency Inversion Principle)
北风设计模式课程---依赖倒置原则(Dependency Inversion Principle) 一.总结 一句话总结: 面向对象技术的根基:依赖倒置原则(Dependency Inversion ...
- C#软件设计——小话设计模式原则之:依赖倒置原则DIP
前言:很久之前就想动笔总结下关于软件设计的一些原则,或者说是设计模式的一些原则,奈何被各种bootstrap组件所吸引,一直抽不开身.群里面有朋友问博主是否改行做前端了,呵呵,其实博主是想做“全战”, ...
- 《设计模式》-原则三:依赖倒置原则(DIP)
这几天晚上回来都去玩了!没有坚持学习.真的好惭愧! 非常自责 后面一定要坚持 一气呵成 争取每天学一点,把这个学完. 今天主要是看了一下 设计模式中的 原则三: 依赖倒置原则(DIP) 官方是这样 ...
- zt 设计模式六大原则(3):依赖倒置原则
下面说法对不对? 父类将算法(逻辑)封装起来,子类实现细节:这个就叫DIP(依赖倒置:Dependency Inversion Principles),模板模式就是这个原则的实现.如果在父类中加一个t ...
- Java设计模式(2:单一职责原则和依赖倒置原则详解)
一.单一职责原则 不要存在多于一个导致类变更的原因.简单来说,就是一个Class/Interface/Method只负责一项职责. 这句话最为重要的就是这一段:一个Class/Interface/Me ...
- 【设计模式六大原则3】依赖倒置原则(Dependence Inversion Principle)
定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象:抽象不应该依赖细节:细节应该依赖抽象. 问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成.这种场景下,类 ...
- [设计模式]<<设计模式之禅>>关于依赖倒置原则
依赖倒置原则(Dependence Inversion Principle,DIP)这个名字看着有点别扭,“依赖”还“倒置”,这到底是什么意思?依赖倒置原则的原始定义是 High level modu ...
- 设计模式值六大原则——依赖倒置原则 (DIP)
依赖倒置原则(Dependence Inversion Principle,DIP)的原始定义: 高层模块不应该依赖底层模块,两者都应该依赖其抽象: 抽象不应该依赖细节: 细节应该依赖抽象. 依赖倒置 ...
- 设计模式——依赖倒置原则实例(PHP实现)
<?php /** * 设计模式--依赖倒置原则实例 * Created by DannyWang * jue.wang@yulore.com * 2015-05-05 */ abstract ...
随机推荐
- testng 注解
testng.xml suite(套件): 由一个或多个测试组成 test(测试): 由一个或多个类组成 class(类): 一个或多个方法组成 @BeforeSuite: 在某个测试套件开始之 ...
- ms sql server缓存清除与内存释放
Sql Server系统内 存管理在没有配置内存最大值,很多时候我们会发现运行Sql Server的系统内存往往居高不下.这是由于他对于内存使用的策略是有多少闲置的内存就占用多少,直到内存使用虑达到系 ...
- 【HTML】Intermediate4:Tables:rowspan and colspan
1.</th> header cell As with td elements,these must be enclosed inside tr elements 2.</tr co ...
- HW4.11
public class Solution { public static void main(String[] args) { int count = 0; for(int i = 100; i & ...
- BCP的用法
bcp kaiser..kp_rates in c:\kp.bcp -U buykporg -P buykporg -S localhost -c bcp ccrm_oem_shqc.."s ...
- Linux 下的五种 IO 模型
概念说明 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方).操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的 ...
- Worker工作者进程
- hadoop-2.6.0.tar.gz + spark-1.5.2-bin-hadoop2.6.tgz 的集群搭建(3节点和5节点皆适用)
本人呕心沥血所写,经过好一段时间反复锤炼和整理修改.感谢所参考的博友们!同时,欢迎前来查阅赏脸的博友们收藏和转载,附上本人的链接.http://www.cnblogs.com/zlslch/p/584 ...
- JNI 技术与 Android 应用
1. 什么是 JNI JNI是Java Native Interface的缩写.从Java 1.1开始,JNI标准成为java平台的一部分,它允许Java和其他语言进行交互.JNI一开始为C和C++而 ...
- sql语法:inner join on, left join on, right join on具体用法
inner join(等值连接) 仅仅返回两个表中联结字段相等的行 left join(左联接) 返回包含左表中的全部记录和右表中联结字段相等的记录 right join(右联接) 返回包含右表中的全 ...