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 ...
 
随机推荐
- Windows Azure 基本操作手册
			
http://www.cnblogs.com/sennly/p/4139663.html 基本测试信息 登陆地址:https://manage.windowsazure.cn(Azure管理门户,适用 ...
 - Docker系列(五)OVS+Docker网络打通示例
			
环境说明 两个虚拟机 操作系统Centos7 DOcker版本1.8 脚本内容: 1 4 7 10 19 27 32 33 39 -j ACCEPT 47 48 # R ...
 - HW3.16
			
public class Solution { public static void main(String[] args) { int randomValue = (int)(Math.random ...
 - UIImage的使用
			
UIImage是IOS中层级比较高的一个用来加载和绘制图像的一个类,更底层的类还有CGImage,以及IOS5.0以后新增加的CIImage.今天我们主要聊一聊UIImage的三个属性: imageO ...
 - 五、SQL映射的XML文件
			
MyBatis真正的力量是在映射语句中.这里是奇迹发生的地方.对于所有的力量,SQL映射的XML文件是相当的简单.当然如果你将它们和对等功能的JDBC代码来比较,你会发现映射文件节省了大约95%的代码 ...
 - Fastjson反序列化泛型类型时候的一个问题
			
import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.u ...
 - NoSQL 数据库产品学习总结(一)
			
NoSQL 数据库产品学习总结(一) 本篇文章共分为四个章节,会陆续整理下 Memcached.Redis.tair.mongodb.hbase.SequoiaDB. Cassandra的相关知识. ...
 - String.Format使用方法
			
1.作为參数 名称 说明 Format(String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项. Format(String, ...
 - Android+OpenCV 摄像头实时识别模板图像并跟踪
			
通过电脑摄像头识别事先指定的模板图像,实时跟踪模板图像的移动[用灰色矩形框标识] ps:一开始以为必须使用OpenCV Manager,可是这样会导致还需要用户去额外安装一个apk,造成用户体验很差, ...
 - optimize table-2
			
今天在看CU的时候,发现有人问有关optimize来表优化的问题,当年因为这个问题,困扰我很长一段时间,今天有空我把这个问题,用实际数据来展示出来,让大家可以亲眼来看看,optimize table的 ...