摘要:
一、不谈什么 1、咱们不谈老板就是首席产品经理,如周鸿祎、张小龙、史玉柱、雷军... 2、咱们不谈产品经理是All In One的领导 二、产品经理不是什么 1、产品经理不是项目经理:整个项目的进度/任务分配、整个项目的质量,不归产品经理负责 2、产品经理不是部门经理:部门人员分工配合/协调工作、团 阅读全文
摘要:
"开放-封闭"原则(OCP)原则讲的是:一个软件实体应当对扩展开放,对修改关闭。里氏代换原则(LSP):子类型(subtype)必须能够替换它们的基类型。用面向对象的语言来讲,不允许更改的是系统的抽象层,而允许更改的是系统的实现层。 阅读全文
摘要:
模板方法模式——在一个抽象类中定义一个操作中的算法骨架,而将一些步骤延迟到子类中去实现。把相同的部分抽象出来到抽象类中去定义,具体子类来实现具体的不同部分,这个思路也正式模板方法的实现精髓所在。模板方法模式在抽象类中定义了算法的实现步骤,将这些步骤的实现延迟到具体子类中去实现,从而使所有子类复用了父类的代码,所以模板方法模式是基于继承的一种实现代码复用的技术。 阅读全文
摘要:
代理模式——就是给某一个对象提供一个代理,并由代理对象控制对原对象的引用。在一些情况下,一个客户不想或者不能直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。例如电脑桌面的快捷方式就是一个代理对象,快捷方式是它所引用的程序的一个代理。代理模式能够将调用用于真正被调用的对象隔离,在一定程度上降低了系统的耦合度。代理对象在客户端和目标对象之间起到一个中介的作用,这样可以起到对目标对象的保护。代理对象可以在对目标对象发出请求之前进行一个额外的操作,例如权限检查等。 阅读全文
摘要:
享元模式——运用共享技术有效地支持大量细粒度的对象。享元模式可以避免大量相似类的开销。优点是降低了系统中对象的数量,从而降低了系统中细粒度对象给内存带来的压力。享元模式主要用来解决由于大量的细粒度对象所造成的内存开销的问题,它在实际的开发中并不常用,可以作为底层的提升性能的一种手段。 阅读全文
摘要:
外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。使用外观模式时,我们创建了一个统一的类,用来包装子系统中一个或多个复杂的类,客户端可以直接通过外观类来调用内部子系统中方法,从而外观模式让客户和子系统之间避免了紧耦合。外观模式的实现核心主要是——由外观类去保存各个子系统的引用,实现由一个统一的外观类去包装多个子系统类,然而客户端只需要引用这个外观类,然后由外观类来调用各个子系统中的方法。 阅读全文
摘要:
组合模式允许你将对象组合成树形结构来表现”部分-整体“的层次结构,使得客户以一致的方式处理单个对象以及对象的组合。组合模式实现的最关键的地方是——简单对象和复合对象必须实现相同的接口。这就是组合模式能够将组合对象和简单对象进行一致处理的原因。 阅读全文
摘要:
装饰者模式采用对象组合而非继承的方式实现了再运行时动态地扩展对象功能的能力,而且可以根据需要扩展多个功能,避免了单独使用继承带来的 ”灵活性差“和”多子类衍生问题“。同时它很好地符合面向对象设计原则中 ”优先使用对象组合而非继承“和”开放-封闭“原则。 阅读全文
摘要:
桥接模式即将抽象部分与实现部分脱耦,使它们可以独立变化。桥接模式实现了抽象化与实现化的解耦,使它们相互独立互不影响到对方。 阅读全文
摘要:
Linq to SQL 语法查询(链接查询,子查询 & in操作 & join,分组统计等) 描述:查询订单数超过5的顾客信息 查询句法: var 子查询 = from c in ctx.Customers where (from o in ctx.Orders group o by o.Custo 阅读全文
摘要:
使用Linq中的Distinct方法对序列进行去重操作,讨论,LINQ去除重复的数据(某个字段有重复的数据),对linq查询结果进行去重处理。讨论,LINQ去除重复的数据(某个字段有重复的数据)的Distinct方法 阅读全文
摘要:
适配器模式使得新环境中不需要去重复实现已经存在了的实现而很好地把现有对象(指原来环境中的现有对象)加入到新环境来使用.在适配器模式中,适配器可以是抽象类,并适配器模式的实现是非常灵活的,我们完全可以将Adapter模式中的“现存对象”作为新的接口方法参数,适配器类可以根据参数参数可以返回一个合适的实例给客户端。 阅读全文
摘要:
它与工厂方法模式的实现非常相似,其中原型模式中的Clone方法就类似工厂方法模式中的工厂方法,只是工厂方法模式的工厂方法是通过new运算符重新创建一个新的对象(相当于原型模式的深拷贝实现),而原型模式是通过调用MemberwiseClone方法来对原来对象进行拷贝,也就是复制,同时在原型模式优点中也介绍了与工厂方法的区别 阅读全文
摘要:
建造者模式将一个复杂对象的构建于它的表示分离,使得同样的构建过程可以创建不同的表示.主要用于"分步骤来构建一个复杂的对象".抽象工厂模式解决了“系列产品”的需求变化,而建造者模式解决的是 “产品部分” 的需要变化.建造者隐藏了具体产品的组装过程. 阅读全文
摘要:
抽象工厂模式提供一个创建产品的接口来负责创建相关或依赖的对象,而不具体明确指定具体类.抽象工厂模式很难支持新种类产品的变化.这是因为抽象工厂接口中已经确定了可以被创建的产品集合,如果需要添加新产品,此时就必须去修改抽象工厂的接口,这样就涉及到抽象工厂类的以及所有子类的改变.这样也就违背了“开发——封闭”原则,一个系统不要求依赖产品类实例如何被创建、组合和表达的表达,这点也是所有工厂模式应用的前提。 阅读全文
摘要:
ROWNUMBER() OVER( PARTITION BY COL1 ORDER BY COL2)用法 今天在使用多字段去重时,由于某些字段有多种可能性,只需根据部分字段进行去重,在网上看到了rownumber() over(partition by col1 order by col2)去重的方 阅读全文
摘要:
工厂方法模式通过面向对象编程中的多态性来将对象的创建延迟到具体工厂中,从而解决了简单工厂模式中存在的问题,也很好地符合了开放封闭原则.在工厂方法模式中,工厂类与具体产品类具有平行的等级结构,它们之间是一一对应的 阅读全文
摘要:
简单工厂模式又叫静态方法模式,由一个工厂类根据传入的参数决定创建出哪一种产品类的实例.原则是封装改变,既然要封装改变,自然也就要找到改变的代码,然后把改变的代码用类来封装.降低对象之间的耦合度,实现了对责任的分割,也起到了代码复用的作用.但是系统扩展困难,工厂类集中了所有产品创建逻辑,一旦不能正常工作,整个系统都会受到影响 阅读全文
摘要:
确保一个类只有一个实例,并提供一个访问它的全局访问点.单例模式是保证一个类只有一个实例的一种实现方法,该方法是为了降低对象之间的耦合度,适用系统中某个对象只需要一个实例的情况.在多线程中需要使用lock枷锁,双重锁定来保证唯一单例 阅读全文
摘要:
一,微软SQLHelper.cs类 中文版: 1 using System; 2 using System.Data; 3 using System.Xml; 4 using System.Data.SqlClient; 5 using System.Collections; 6 7 namespa 阅读全文