演义群侠传(十)【重学设计模式】
总以为自己明白了。。。。。。
1、命名规范不用说了;逻辑和输出界面分离,就是封装一个方法;业务的封装成一个个类;简单的工厂类//学会看UML图
2、何为简单工厂模式?
简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类,否则返回object。它又称为静态工厂方法模式。简单工厂模式实质上是由一个工厂类根据传入的参数,动态决定一个应该创建哪产品类。
3、何为策略模式?
策略模式(Strategy Pattern),定义了一系列的算法,将每一种算法封装起来并可以相互替换使用,策略模式让算法独立于使用它的客户应用而独立变化。
对于Strategy模式来说,主要有如下优点:
1> 提供了一种替代继承的方法,而且既保持了继承的优点(代码重用)还比继承更灵活(算法独立,可以任意扩展)。
2> 避免程序中使用多重条件转移语句,使系统更灵活,并易于扩展。
3> 遵守大部分GRASP原则和常用设计原则,高内聚、低偶合。
对于Strategy模式来说,主要有如下缺点:
1> 因为每个具体策略类都会产生一个新类,所以会增加系统需要维护的类的数量。
4、单一职责原则:通过职责划分类,比如界面和逻辑
5、开放封闭原则:对于扩展是开放的,对于修改时封闭的
6、依赖倒转原则:抽象不应该依赖细节,细节应该依赖抽象;就是对电脑系统接口编程,而不是针对具体品牌编程
7、继承接口必须实现所有方法和属性
8、装饰模式:重要在于传入对象、super使用
9、代理模式【最常用的模式】:通过代理访问其他对象
10、工厂模式vs简单工厂模式:创建工厂模式接口,然后继承,生成工厂模式实例,客户端实现;对扩展开放,对修改关闭
11、迪米特法则:在类的结构设计上,每一个类都应当尽量降低成员的访问权限。
12、外观模式:为子系统中的一组接口提供一个一致的界面。
13、观察者模式:当一个对象的改变需要同时改变其他对象的时候使用,而不知道有多少对象需要改变;plus委托模式就是puremvc了,也就是facade注册
14、状态模式:就是说将不同的状态封装成为不同的类,根据状态不同类之间转换。
15、单例模式:保证一个类仅有一个实例,并提供一个访问他的全局访问点。
16、命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;
17、待续