系统设计
文章平均质量分 76
它山之石,可以攻玉
工欲善其事,必先利其器。
展开
-
设计模式之组合模式
组合模式(Composite Pattern)是一种结构型设计模式, 将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。组合模式用于将多个对象组合成树形结构以表示“整体-部分”的结构层次,组合模式对单个对象(叶子对象)和组合对象(容器对象)的使用具有一致性。简单来说,需要实现树状结构(整体-部分),适合使用组合模式,反之不适合(不代表不能用,需要特殊适配,得不偿失)。原创 2022-09-29 16:44:42 · 672 阅读 · 0 评论 -
设计模式之桥接模式
桥接模式(Bridge Pattern)是一种结构型设计模式, 通过将抽象部分与实现部分分离,把多种可匹配的使用进行组合, 从而能在开发时分别使用。举个例子,例如某个手机厂商生产三个品牌的手机:小米、华为、苹果,每个品牌又分为64G、128G、256G,那么,将会有13个类:桥接模式用聚合的方式代替继承,降低抽象与具体的耦合,重点在于“解耦”,一句话总结:双重维度扩展。桥接模式和组合模式的区别:组合模式侧重于整体与部分,桥接模式侧重于同级别类。原创 2022-09-27 11:24:11 · 697 阅读 · 0 评论 -
设计模式之适配器模式
适配器模式(Adapter Pattern)是一种结构型设计模式, 它能使接口不兼容的对象能够相互合作,即定义一个包装类,用于包装不兼容接口的对象。适配器模式是指定义一个适配器类,将一个已经存在的类,转换成目标接口所期望的行为形式,总而言之建议尽量使用对象的适配器模式,多用合成/聚合、少用继承。原创 2022-09-25 21:46:31 · 290 阅读 · 0 评论 -
设计模式之原型模式
原型模式是一种创建型设计模式,是指创建新对象的时候,根据现有的一个原型来创建。简单来说就是就是对象的克隆()。原型模式分为浅拷贝和深拷贝:(浅复制)只是拷贝了基本类型的数据,而引用类型数据,只是拷贝了一份引用地址。(深复制)在计算机中开辟了一块新的内存地址用于存放复制的对象。如果你有一个对象, 并希望生成与其完全相同的一个复制品,那么你可以用原型模式。原创 2022-09-24 22:13:14 · 297 阅读 · 0 评论 -
设计模式之创建者模式
Builder构建器模式也被称为生成器模式,是一种创建型设计模式, 分离复杂对象的创建和表示。简单理解就是内部有许多“小工厂”创建对象,最终来组建一个完全体。创建者模式让我想起来很早之前的一部动画片《战神金刚》,组成脚和腿,组成躯干,我来组成头部。创建者模式和模板方法模式极其相似,创建者模式强调的是对象的创建,模板方法模式强调的是方法的执行。创建者模式和工厂模式的区别,创建者模式侧重于产品的类型和创建顺序,工厂模式侧重于创建产品。原创 2022-09-24 12:10:51 · 195 阅读 · 0 评论 -
设计模式之工厂模式
工厂模式是一种创建型设计模式, 在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型(继承、多态)。工厂模式划分为三类:简单工厂(静态工厂)模式、工厂方法模式、抽象工厂模式,在GoF的《设计模式: 可复用面向对象软件的基础》将简单工厂模式划分为工厂方法模式。一句话表示:任何可以产生对象的方法或类,都可以称之为工厂。原创 2022-09-22 18:29:02 · 295 阅读 · 0 评论 -
设计模式之单例模式
单例模式是一种创建设计模式,确保类只有一个实例,同时为此实例提供全局访问点,换句话说就是在JVM中,某个类只允许被创建一次(唯一实例),之后所有的操作都是基于同一个实例。单例模式同时解决了两个问题(保证类只有一个实例、提供全局访问点),所以违反了单一职责原则。以上几种单例模式实现方式中,除了枚举方式外,其他几种方式都可以通过序列化和反序列化绕过类的private构造方法从而创建出多个实例(实际开发中也不会有人去这么做,费力不讨好)。原创 2022-09-21 17:29:52 · 734 阅读 · 0 评论 -
系统设计原则及技术指标
不要为了用某项技术而使用,某项技术的使用是为了应对业务增长带来的系统瓶颈问题,例如一个简单的OA系统,你非要使用微服务、分布式架构、亿级流量缓存,除了增加了开发、运维成本,还要应对开发过程中的种种问题,“不是贵的才是最好的,适合自己才是最重要的。系统的初期,以核心业务为主,快速上线,占取市场份额,等待用户及市场反馈,及时调整需求进行项目迭代,不要一开始就想开发一个淘宝或者京东,也许你可以开发出来,但是市场份额已满,到头来一场空。当部分代码在多个地方出现,或者你有想要拷贝的欲望时,证明需要重构次部分代码了。原创 2022-09-20 17:28:34 · 2235 阅读 · 0 评论