随笔分类 -  Design Pattern

摘要:使用 Spring 来做依赖注入 首先在 Core 层配置 xml 之后 在 Controller 层配置 关联到 Core 的 xml 配置 启动项目的 Web.config 在 启动项目中 引用 程序集 Spring.Core (Common.Logging, Common.Logging.Co 阅读全文
posted @ 2016-07-09 10:55 `Laimic 阅读(100) 评论(0) 推荐(0)
摘要:SRP 单一职责原则 一个类应该只有一个发生变化的原因 OCP 开放-封闭原则 软件实体 应该是可以扩展, 但是不能修改 对扩展开放, 对修改关闭 LSP 里式替换原则 子类型必须能够代替掉他们的基类型 其中子类与基类的关系不一定是 单纯的 is-a 关系. is-a 应该就行为方式而言, 就是看具 阅读全文
posted @ 2016-05-27 15:56 `Laimic 阅读(166) 评论(0) 推荐(0)
摘要:问题:设计一种子类继承超类的模式原方案:public class Duck{ void quack(){} void swim(){} void display(){} void fly(){}}public class MallardDuck : Duck{ void... 阅读全文
posted @ 2015-12-09 23:36 `Laimic 阅读(107) 评论(0) 推荐(0)
摘要:问题:一个对象在处以不同状态时, 如何在对待同一方法时能有不同的处理方式原方案:public class Machine{ int stateA = 1; int stateB = 2; int stateC = 3; // ..... int State = stat... 阅读全文
posted @ 2015-11-30 20:36 `Laimic 阅读(153) 评论(0) 推荐(0)
摘要:问题:当使用遍历方法对一个集合对象遍历时, 如果这个集合包含的不仅仅是"项", 也可能包含另一个集合, 那么对"项"的遍历方法在集合上可能不通用所以:我们将 集合 和 项 都进行统一对待.为它们都建造相同的方法, 已达到在遍历或者其他操作中不需要考虑 集合 当中时候含有不一样的元素public ab... 阅读全文
posted @ 2015-11-30 20:15 `Laimic 阅读(95) 评论(0) 推荐(0)
摘要:问题:面对多个集合对象(不一定使用相同集合容器)时, 如何设置使其 遍历和操作统一化public class AMenu{ ArrayList menuItems; public AMenu() { menuItems = new ArrayList(); ... 阅读全文
posted @ 2015-11-29 11:23 `Laimic 阅读(120) 评论(0) 推荐(0)
摘要:问题:许多含有相同步骤 但又细节不用的类所以:讲相同的步骤 抽象为基类, 子类覆盖那些细节不同的方法public abstract Base(){ void Start() { A(); B(); C(); } void A() ... 阅读全文
posted @ 2015-11-27 21:00 `Laimic 阅读(93) 评论(0) 推荐(0)
摘要:需求:将一系列复杂操作 (流水操作) 简化为一个单一的操作接口 阅读全文
posted @ 2015-11-26 19:45 `Laimic 阅读(91) 评论(0) 推荐(0)
摘要:需求:现有的需求对应不上已经存在的接口的时候所以:用一个适配器类来适配 Duck 和 Turkey 不一样的接口interface Duck{ void quack(); void fly();}interface Turkey{ void gobble(); void fl... 阅读全文
posted @ 2015-11-26 19:43 `Laimic 阅读(128) 评论(0) 推荐(0)
摘要:需求:确保全局共用一个实例, 避免所有不同对象调用造成结果不可知原方式:public static object Resource { get; set; }问题:实例在一开始就被创建, 有时候是不需要的所以:单例模式:public class Singleton{ private objec... 阅读全文
posted @ 2015-11-22 11:35 `Laimic 阅读(99) 评论(0) 推荐(0)
摘要:需求: 披萨店提供披萨原方式:public class PizzaStore{ public Pizza orderPizza() { Pizza pizza = new Pizza(); pizza.prepare(); pizza.bake(... 阅读全文
posted @ 2015-11-21 21:16 `Laimic 阅读(167) 评论(0) 推荐(0)
摘要:简介: IOC(控制反转)模式 是设计模式的一种 主要的目的用来解除一个类对另一个具体类的依赖.使其不受需求变化的影响, 同时兼顾所有相同类型的对象. 一个明确直接引用某个对象的形式: 假设变动需求, 则需要改动调用者. 频繁改动会增加维护负担: 实际上, 调用者都是需要 被调用这(A or B)完 阅读全文
posted @ 2015-09-13 09:24 `Laimic 阅读(207) 评论(0) 推荐(0)