苦逼也聊模式--(0)--开篇
2016-01-12 14:32
190 查看
啥是模式?
就是前人的抽象总结,反复提炼出来的几个东西。让我们软件可以更好的设计 哈哈。
工厂模式,有人说工厂就是三层。。。
那个时候我反不动他,只能说就算是工厂模式也是可以分很多层的。。。。
以前看过大话设计模式,时间太久,实话说忘光了。再理一次吧,过度设计会把你设计成三层的。
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式,抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
先来个特殊的模式吧:
异常的时候,怎么跳过异常抛出 if(obj!=null){}即可 哈哈
普通情况下:摘抄 /article/4950359.html
加个模式的思想吧。
通过比较上面的两段代码,一般情况下四行的业务代码,为了容错,至少要写6行的容错代码,而使用空模式时,不用增加任何一行容错代码。是不是发现用了空模式后代码更加优雅简单,并且安全性提高了很多.
小结:空模式是一种很简单的模式,甚至不算是模式。然而它代表了一种很好的编码习惯,在具体项目开发过程中,如果用好类似的习惯,相信开发效率会更高,个人技能也会更高。
我的小结:模式不是万能的,提炼才是精华,像零模式这算半个模式的用法是一个灵活的体现。
下一步:工厂方法模式
就是前人的抽象总结,反复提炼出来的几个东西。让我们软件可以更好的设计 哈哈。
工厂模式,有人说工厂就是三层。。。
那个时候我反不动他,只能说就算是工厂模式也是可以分很多层的。。。。
以前看过大话设计模式,时间太久,实话说忘光了。再理一次吧,过度设计会把你设计成三层的。
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式,抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
先来个特殊的模式吧:
异常的时候,怎么跳过异常抛出 if(obj!=null){}即可 哈哈
普通情况下:摘抄 /article/4950359.html
static
void
TestNormal() {
Console.WriteLine(
"测试传统方法."
);
BusinessBase bb = GetBusinessNormal(
true
);
if
(bb!=
null
)
bb.DoSomething();
else
Console.WriteLine(
"出错啦."
);
bb = GetBusinessNormal(
false
);
if
(bb !=
null
)
bb.DoSomething();
else
Console.WriteLine(
"出错啦."
);
}
static
BusinessBase GetBusinessNormal(
bool
flag) {
try
{
if
(flag)
return
new
BusinessA();
throw
new
Exception(
"出错啦."
);
}
catch
{
return
null
;
}
}
加个模式的思想吧。
static
void
TestEmptyPattern() {
Console.WriteLine(
"测试空模式."
);
BusinessBase bb = GetBusinessEmptyPattern(
false
);
bb.DoSomething();
bb = GetBusinessEmptyPattern(
true
);
bb.DoSomething();
}
static
BusinessBase GetBusinessEmptyPattern(
bool
flag) {
try
{
if
(flag)
return
new
BusinessA();
throw
new
Exception(
"出错啦."
);
}
catch
{
return
BusinessA.Empty;
}
}
通过比较上面的两段代码,一般情况下四行的业务代码,为了容错,至少要写6行的容错代码,而使用空模式时,不用增加任何一行容错代码。是不是发现用了空模式后代码更加优雅简单,并且安全性提高了很多.
小结:空模式是一种很简单的模式,甚至不算是模式。然而它代表了一种很好的编码习惯,在具体项目开发过程中,如果用好类似的习惯,相信开发效率会更高,个人技能也会更高。
我的小结:模式不是万能的,提炼才是精华,像零模式这算半个模式的用法是一个灵活的体现。
下一步:工厂方法模式
相关文章推荐
- 【Linux命令】mysql数据库常用操作命令
- Maven多模块项目 eclipse暖部署 Maven项目实现 tomcat热部署
- iOS网络请求NSURLSession
- Atom 编辑器的使用
- 关于 Hibernate 级联操作
- laravel5中间件的使用例子
- 黄聪:WordPress 备案期间临时关闭站点设置404
- 开始学nodejs——net模块
- ios获取设备信息总结
- IOS生成与读取二维码名片
- repeater嵌套
- 词自动纠错
- 电子商务行业数据集成案例介绍
- 岗位 人员 职位 机构之间的关系
- STS: Port 8080 required by Pivotal tc Server Developer is already in use
- iOS 开发之 Cocoapods
- 优化WordPress中文章与评论的时间显示
- python文件操作
- Asp.Net类型转换类(通用类)代码分享
- MessageUI(发送邮件)