随笔分类 -  设计模式

摘要:我所在的公司是一家生产奢侈品眼镜的生产型企业,产品的主数据由PLM管理,一副眼镜从设计到出库需要经历如下的生命周期: 1. Preliminary: 设计的初始化,指我们开始着手设计新的产品型号 2. Export: 设计的主数据开始可以导出到SAP系统来让SAP做数据的增强 3. Review: 阅读全文
posted @ 2016-08-18 22:33 StoneFeng 阅读(380) 评论(0) 推荐(0) 编辑
摘要:现在我家里有一台铃木的小车锋驭和一台铃木的摩托车风暴1000,我要想把这两种类型的车都先跑起来再停下来,有一些步骤,并且这些步骤是有先后顺序的,那就是: 1. 打开车门 2. 启动发动机 3. 挂档 4. 走起 5. 刹车 6. 停车 OO设计原则之一就是分离可变和不变的部分并把可变的部分封装起来, 阅读全文
posted @ 2016-08-06 15:09 StoneFeng 阅读(12856) 评论(8) 推荐(8) 编辑
摘要:最近我们项目组在对PLM版本进行升级,我们需要从2013版升级到2016版,在升级过程中我们发现一个问题,在2013及之前的版本中,数据表的过滤器支持两种方式来从Oracle数据库动态获取数据: 1. Java程序的方式,写一个方法,根据实际需求构建查询条件,从数据库获取到数据后再返回到JSP数据表 阅读全文
posted @ 2016-08-06 09:38 StoneFeng 阅读(922) 评论(0) 推荐(0) 编辑
摘要:楼主工作的单位是一家欧洲公司,主营奢侈品的生产和销售,我们有一个PLM(产品生命周期管理系统),用来管理产品的主数据,例如对部品及物料从设计到生产,以及BOM等主数据的管理,我们采购的平台是Enovia,当然我们在这个系统中做了很多深度定制来满足我们企业的特殊需求,但凡构建过企业级系统的人都知道,一 阅读全文
posted @ 2016-07-30 13:59 StoneFeng 阅读(804) 评论(2) 推荐(0) 编辑
摘要:面试时面试官问了我一个问题,事务有哪些基本特性?我不假思索地回答:原子性,一致性,隔离性和持久性,并对这四个特性的概念做了描述: 原子性:是指每个事务都是一个不可分割的最小单元,事务要么成功提交,要么失败回滚,不存在半成功半失败的情况。 一致性:跟原子性密切相关,是指事务的执行结果应该使数据库从一种 阅读全文
posted @ 2016-07-29 20:48 StoneFeng 阅读(1487) 评论(4) 推荐(2) 编辑
摘要:很多时候我们需要解决遗留代码的问题,例如遗留代码暴露出的接口方法需要的参数列表跟调用者提供的参数列表不一致,那么如何解决这种冲突呢,在解决这种问题的时候,我第一时间想到的解决方案就是使用适配器模式。适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。考虑这样 阅读全文
posted @ 2016-07-28 23:33 StoneFeng 阅读(366) 评论(0) 推荐(0) 编辑
摘要:我们公司使用的Enovia PLM系统是基于SOA架构的,PLM不仅仅是SAP的主数据源头,同时还需要跟其他的系统(例如供应商的DAM系统及公司的AS400系统)保持交互,系统跟系统的数据交互通过Web Service基于SOAP来实现,具体来说,PLM需要跟如下系统保持交互: PLM发送物料主数据 阅读全文
posted @ 2016-07-23 15:49 StoneFeng 阅读(570) 评论(0) 推荐(0) 编辑
摘要:单例模式确保一个类只有一个实例,并提供一个全局访问点。 在很多实际场景中,我们希望某个类只能有一个实例化的对象,例如数据连接池,日志对象等等,这个时候我们就要使用单例模式了,单例模式的核心思想是私有化构造器,防止其他类任意实例化该类,具体的实现有多种,每种都会有其优缺点,让我们来仔细看看各种实现的差 阅读全文
posted @ 2016-07-19 17:11 StoneFeng 阅读(1710) 评论(0) 推荐(0) 编辑
摘要:抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。 Pizza(抽象产品接口) CheesePizza(实际产品) ClamPizza(实际产品) MushroomPizza(实际产品) PizzaFactory(抽象工厂接口) CheesePizzaCreator(对 阅读全文
posted @ 2016-07-19 15:07 StoneFeng 阅读(669) 评论(0) 推荐(0) 编辑
摘要:公司门口有一个小摊卖手抓饼和肉夹馍的,有时候中午不想吃饭就会去光顾一下那个小摊,点了手抓饼之后往往还可以在这个基础之上增加一些配料,例如煎蛋,火腿片等等,每个配料的价格都不一样,不管你怎么配配料,最终价格是手抓饼基础价加上每一种所选配料价格的总和。小摊的价格单如下: 如何使用一种设计模式来处理价格计 阅读全文
posted @ 2016-07-17 22:40 StoneFeng 阅读(27941) 评论(8) 推荐(9) 编辑
摘要:观察者模式定义了对象之间一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。 Observer MyObserver1 MyObserver2 Subject MyTest 当项目中的业务逻辑有关于出版者跟订阅者的概念的时候,我们应该第一时间想到使用观察者设计模式来处理 阅读全文
posted @ 2016-07-14 23:26 StoneFeng 阅读(638) 评论(0) 推荐(0) 编辑
摘要:策略模式定义了算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。 FlyBehavior FlyNoWay FlyWithWing QuackBehavior Quack MuteQuack Duck DecoyDuck RubberDuck MyTest 在这个 阅读全文
posted @ 2016-07-13 13:42 StoneFeng 阅读(521) 评论(0) 推荐(0) 编辑