打字猴:1.700456763e+09
1700456763 开闭原则只是精神口号,实现拥抱变化的方法非常多,并不局限于这6大设计原则,但是遵循这6大设计原则基本上可以应对大多数变化。因此,我们在项目中应尽量采用这6大原则,适当时候可以进行扩充,例如通过类文件替换的方式完全可以解决系统中的一些缺陷。大家在开发中比较常用的修复缺陷的方法就是类替换,比如一个软件产品已经在运行中,发现了一个缺陷,需要修正怎么办?如果有自动更新功能,则可以下载一个.class文件直接覆盖原有的class,重新启动应用(也不一定非要重新启动)就可以解决问题,也就是通过类文件的替换方式修正了一个缺陷,当然这种方式也可以应用到项目中,正在运行中的项目发现需要增加一个新功能,通过修改原有实现类的方式就可以解决这个问题,前提条件是:类必须做到高内聚、低耦合,否则类文件的替换会引起不可预料的故障。
1700456764
1700456765 ❑项目规章非常重要
1700456766
1700456767 如果你是一位项目经理或架构师,应尽量让自己的项目成员稳定,稳定后才能建立高效的团队文化,章程是一个团队所有成员共同的知识结晶,也是所有成员必须遵守的约定。优秀的章程能带给项目带来非常多的好处,如提高开发效率、降低缺陷率、提高团队士气、提高技术成员水平,等等。
1700456768
1700456769 ❑预知变化
1700456770
1700456771 在实践中过程中,架构师或项目经理一旦发现有发生变化的可能,或者变化曾经发生过,则需要考虑现有的架构是否可以轻松地实现这一变化。架构师设计一套系统不仅要符合现有的需求,还要适应可能发生的变化,这才是一个优良的架构。
1700456772
1700456773 开闭原则是一个终极目标,任何人包括大师级人物都无法百分之百做到,但朝这个方向努力,可以非常显著地改善一个系统的架构,真正做到“拥抱变化”。
1700456774
1700456775
1700456776
1700456777
1700456778 设计模式之禅 [:1700453931]
1700456779 设计模式之禅 第二部分 真刀实枪——23种设计模式完美演绎
1700456780
1700456781 设计模式之禅 [:1700453932]
1700456782 第7章 单例模式
1700456783
1700456784 设计模式之禅 [:1700453933]
1700456785 7.1 我是皇帝我独苗
1700456786
1700456787 自从秦始皇确立了皇帝这个位置以后,同一时期基本上就只有一个人孤零零地坐在这个位置。这种情况下臣民们也好处理,大家叩拜、谈论的时候只要提及皇帝,每个人都知道指的是谁,而不用在皇帝前面加上特定的称呼,如张皇帝、李皇帝。这一个过程反应到设计领域就是,要求一个类只能生成一个对象(皇帝),所有对象对它的依赖都是相同的,因为只有一个对象,大家对它的脾气和习性都非常了解,建立健壮稳固的关系,我们把皇帝这种特殊职业通过程序来实现。
1700456788
1700456789 皇帝每天要上朝接待臣子、处理政务,臣子每天要叩拜皇帝,皇帝只能有一个,也就是一个类只能产生一个对象,该怎么实现呢?对象产生是通过new关键字完成的(当然也有其他方式,比如对象拷贝、反射等),这个怎么控制呀,但是大家别忘记了构造函数,使用new关键字创建对象时,都会根据输入的参数调用相应的构造函数,如果我们把构造函数设置为private私有访问权限不就可以禁止外部创建对象了吗?臣子叩拜唯一皇帝的过程如类图7-1所示。
1700456790
1700456791
1700456792
1700456793
1700456794 图7-1 臣子叩拜皇帝类图
1700456795
1700456796 只有两个类,Emperor代表皇帝类,Minister代表臣子类,关联到皇帝类非常简单。Emperor如代码清单7-1所示。
1700456797
1700456798 代码清单7-1 皇帝类
1700456799
1700456800 public class Emperor{
1700456801
1700456802 private static final Emperor emperor=new Emperor();//初始化一个皇帝
1700456803
1700456804 private Emperor(){
1700456805
1700456806 //世俗和道德约束你,目的就是不希望产生第二个皇帝
1700456807
1700456808 }
1700456809
1700456810 public static Emperor getInstance(){
1700456811
1700456812 return emperor;
[ 上一页 ]  [ :1.700456763e+09 ]  [ 下一页 ]