body
{
font-family: 微软雅黑,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif;
font-size: 10.5pt;
line-height: 1.5;
}
html, body
{
}
h1 {
font-size:1.5em;
font-weight:bold;
}
h2 {
font-size:1.4em;
font-weight:bold;
}
h3 {
font-size:1.3em;
font-weight:bold;
}
h4 {
font-size:1.2em;
font-weight:bold;
}
h5 {
font-size:1.1em;
font-weight:bold;
}
h6 {
font-size:1.0em;
font-weight:bold;
}
img {
border:0;
max-width: 100%;
height: auto !important;
}
blockquote {
margin-top:0px;
margin-bottom:0px;
}
table {
border-collapse:collapse;
border:1px solid #bbbbbb;
}
td {
border-collapse:collapse;
border:1px solid #bbbbbb;
}
自己写代码,基本是面向过程的,换句话说,就是直接实现工程,不会考虑什么借口啊,对象啊,的东西。。。所以对设计模式,也了解不了太深,简单的列出23种模式及简介。
面向对象实际上就两句话:一是松耦合(Coupling),二是高内聚(Cohesion)。面向对象系统追求的目标就是尽可能地提高系统模块内部的内聚(Cohesion)、尽可能降低模块间的耦合(Coupling)
创建型模式
1) Factory(工厂)模式:提供的创建对象的接口封装,以及其将类的实例化推迟到子类
2) AbstractFactory(抽象工厂)模式:要创建一组相关或者相互依赖的对象
3) Singleton(单例)模式:创建全局变量/对象
4) Builder(建筑)模式:将创建和表示分开(对象很复杂时)
5) Prototype(原型)模式:自我复制
结构型模式
1) Bridge(桥接)模式:抽象和实现分别实现
2) Adapter(适配者)模式:提供了将一个类(第三方库)的接口转化为客户(购买使用者)希望的接口。
3) Decorator(装饰者)模式:组合实现类增加的职责
4) Composite(合成)模式:递归构建状结构
5) Flyweight(享元)模式:将对象的状态分为“外部状态”和“内部状态”,将可以被共享(不会变化)的状态作为内部状态存储在对象中,而外部对象我们可以在适当的时候将外部对象最为参数传递给对象。
6) Fa?ade(外观)模式:给用户提供一个高层接口
7) Proxy(代理)模式:逻辑和实现的彻底解耦
行为模式
1) Template模式
2) Strategy(策略)模式:业务逻辑(算法)具体实现和抽象接口之间解耦
3) State(状态)模式:状态逻辑和动作实现解耦
4) Obsever(观察者)模式:业务逻辑和表示层解耦(1对多的依赖关系)
5) Mementor(备忘录)模式:后悔药——在不破坏封装的前提下,捕获并保存一个类的内部状态,这样就可以利用该保存的状态实施恢复操作
6) Mediator(调停者)模式:对象之间交互和通信
7) Command(命令)模式:Command模式通过将请求封装到一个对象(Command)中,并将请求的接受者存放到具体的ConcreteCommand类中(Receiver)中,从而实现调用操作的对象和操作的具体实现者之间的解耦
8) Visitor(观察者)模式:将更新封装到一个类中
9) Chain of Responsibility (责任链)模式:将可能处理一个请求的对象链接成一个链,并将请求在这个链上传递,直到有对象处理该请求(可能需要提供一个默认处理所有请求的类,例如MFC中的CwinApp类)。
10) Iterator模式:聚合对象的遍历问题
11) Interpreter(翻译)模式:使用一个解释器为用户提供一个一门定义语言的语法表示的解释器,然后通过这个解释器来解释语言中的句子。