• SOLID五大原则(设计原则)

    ·

    发布于

    修改于

    SRP(Single Responsibility Principle),单一职责原则

    类的职责是站在其它类的角度来定义的,类的职责包含多个相关功能,该原则适合基础类,不适合基于基础类构建复杂的聚合类。

    OCP(Open-Close Principle),开闭原则

    对扩展开放,对修改封闭,不修改代码就可以增加新功能,提供者增加新的功能,但使用者不需要修改代码。

    LSP(Liskov Substitution Principle),里氏替换原则

    子类必须实现或继承父类所有的公有方法,子类每个方法的输入参数必须与父类一致,子类每个方法的输出必须不比父类少。

    ISP(Interface Segregation Principle),接口隔离原则

    ISP承认对象需要非内聚接口,然而ISP建议客户端不需要知道整个类,只需要知道有内聚接口的抽象父类即可。

    打印一体机包括打印、复印、扫描、传真四个接口。某员工只用传真功能,那么只应该给他传真功能的接口,而不是整个打印一体机。

    DIP(Dependency Inversion Principle),依赖反转原则

    高层模块不应该直接依赖低层模块,两者都应该依赖抽象层。

    抽象不能依赖细节,细节必须依赖抽象。

    高层模块依赖低层模块指高层模块需要调用低层模块的方法。

    高层模块依赖抽象层,指高层模块基于抽象层编程。

    低层模块依赖抽象层,指低层模块继承或实现抽象层。

    DIP的启发:

    1. 任何变量都不应该持有一个指向具体类的指针或应用。
    2. 任何类都不应该从具体类派生。
    3. 任何方法都不应该覆写它的任何基类中已经实现了的方法。

    用处

    • SRP用于类的设计。
    • OCP是总的指导思想。
    • LSP用于指导类的继承设计。
    • ISP用于指导接口的设计。
    • DIP用于指导如何抽象。

  • 关于设计模式的一些总结

    ·

    发布于

    修改于

    设计原则和设计模式的关系

    设计原则和设计模式是互补的,设计原则主要用于指导“类的定义”的设计,而设计模式主要用于指导“类的行为”的设计。

    敏捷设计

    敏捷设计是一个过程,不是一个事件。它是一个持续的应用原则、模式以及实践来改进软件的结构和可读性的过程。我觉得敏捷模式要比瀑布模式强很多。

    谁拥有接口

    接口属于它的客户,而不是它的派生类。客户和接口之间的逻辑绑定关系要强于接口和它的派生类之间的逻辑绑定关系。它们的关系强到没有接口就无法使用客户!但是在没有某个接口派生类的情况下却依然可以使用客户(可能有其它派生类)。逻辑关系的强度和实体关系的强度是不一致的,继承是一个比关联强得多的实体关系。

    内聚

    判断一个模块的“内聚性”的高低,最重要的是关注模块的元素是否都忠于模块的职责。

    7种内聚

    1. 偶然内聚,这是最差的一种内聚,模块内的元素之间没有什么关系,比如“Utils”这样的包。
    2. 逻辑内聚,模块中的元素在逻辑上属于一个比较宽泛的类别,比如:“鼠标”、“键盘”划分为“输入”类,逻辑内聚必偶然内聚好一点。
    3. 时间内聚。
    4. 过程内聚,模块中各元素必须按照固定“过程顺序”进行处理,与时间内聚的区别在于,时间内聚中各元素的顺序可以随意调整,而过程内聚中元素的先后顺序是严格要求的。
    5. 信息内聚,最典型的例子是“增、删、改、查”某个数据的模块。
    6. 顺序内聚,模块中元素的输出是另外元素的输入,类似流水线,上一个环节的输出是下一个环节的输入。
    7. 功能内聚,这是最好的一种内聚,元素都是为了完成同一个单一任务,而且缺一不可。

    耦合

    耦合是程序模块相互之间的依赖程度。内聚关注模块内部的元素结合程度;耦合关注模块之间的依赖程度。

    8种耦合

    1. 无耦合。
    2. 消息耦合,这是一种耦合度很低的耦合,因为调用方仅仅以来被调用方的“消息”,既不需要传参数,也不需要了解被调用方的内部逻辑,更不需要控制调用方内部的逻辑。
    3. 数据耦合,通过传参传递,并且参数必须为基本数据类型。
    4. 数据结构耦合。
    5. 控制耦合。
    6. 外部耦合,当两个模块依赖相同的外部数据格式、通信协议、设备接口时,称为外部耦合。
    7. 全局耦合(普通耦合),两个模块共享的全局变量。
    8. 内容耦合,当一个模块依赖另一个模块的内容(主要是数据成员)时,称为内容耦合,这是最差的,也叫“病态耦合”。

  • 《什么是民粹主义?》摘要四

    ·

    发布于

    修改于

    七论民粹主义

    1. 民粹主义既不是当代民主政治的正当组成部分,也不是非理性的公民所导致的某种病态情况。它是代议制民主永远的阴影。总会存在某种势力借“人民”之名发言,作为挑战当下掌权精英的方式。古代雅典没有民粹主义,雅典也许会有煽动家,但是没有民粹主义,因为后者仅在代议制中存在。民粹主义不反对政治代议原则,他们仅仅坚称他们自己才是合法的民意代表。
    2. 并非所有批评精英的人都是民粹主义者。除了反对精英之外,民粹主义也反对多元化。他们宣称,他们且只有他们才代表人民,其他的政治竞争者本质上就是非法的,而那些不支持他们的人不是真正意义上人民的一部分。当他们在野时,民粹主义者必然会坚称精英是不道德的,而人民则是道德的、同质化的,且不可能犯错的实体。
    3. 民粹主义者似乎经常宣称自己代表人民所希望的集体利益。但仔细探究便可发现,民粹主义者所在意的,与其说是在一个真正的形成民意的过程之后,每个有常识的人都能归纳出的公共利益,不如说是某种能借以推断出正确的政策的“真正人民”的象征性表征。这就让民粹主义者免受现实经验的批驳。民粹主义者总希望打着“真正人民”和“沉默大多数”的旗号,对抗民选代表和选举出的官方结果。
    4. 尽管民粹主义者常主张进行全民公投,这类行为并非旨在开展一场没有条件限制的,形成民主意愿的流程。民粹主义者仅仅希望他们已确定好的真正人民的意愿得到认可。民粹主义并不是一条通往更广泛政治参与的道路。
    5. 民粹主义者有能力治理,而且他们治理时往往会与他们的根本承诺,即他们且仅他们代表人民的理念相一致。更具体地说,他们会占据国家,大肆推行恩庇政治和贪污腐败,同时会彻底地压制批判他们的公民社会等。这些行径在民粹主义的政治想象中找到了明确的道德支撑,因此民粹主义者能公开地承认。民粹主义者也会制定宪法,这些宪法是充满党派色彩或具排斥性的,旨在打着贯彻某些所谓的人民原本的、真实的意愿的旗号维持民粹主义者的权力。这些宪法往往在某时会导致严重的宪政冲突。
    6. 民粹主义者应该为他们的本质而遭到批判——他们是民主的真正威胁(并非仅对“自由主义”构成威胁),但这并不意味着在政治讨论中不应该与他们互动。和民粹主义者交谈不同于像民粹主义者一样交谈,可以严肃对待他们所提出的问题,同时不认同他们处理问题的方式。
    7. 民粹主义并不会像有时所说的,从让政治“离人民更近”甚至重新确立人民主权这一角度,成为自由民主制的矫正方案。但有必要清楚说明的是,一部分民众确实未被充分代表(这种代表性的缺乏可能是利益或身份认同上的,或两者皆是)。但这并不能支持民粹主义者关于只有其支持者才是真正的人民以及他们是唯一的合法民意代表这一主张。因而,民粹主义会迫使自由民主制的捍卫者更认真地思考如今的代议制有什么失败之处。民粹主义也会促使他们应对更广泛的道德问题。归属于某个政治体的标准是什么?多元主义到底为什么值的存续?若将民粹主义者选民视为自由、平等的公民,而非受沮丧、愤怒和憎恨驱使的病态个例,又该如何处理他们的关切?

  • 罗织经 瓜蔓卷(12/12)

    ·

    发布于

    修改于

    事不至大,无以惊人。案不及众,功之匪显。上以求安,下以邀宠,其冤固有,未可免也。荣以荣人者荣,祸以祸人者祸。荣非己莫恃,祸惟他勿纵。罪无实者,他罪可代;恶无彰者,人恶以附。心之患者,置敌一党;情之怨者,陷其奸邪。

    官之友,民之敌;亲之友,仇之敌,敌者无常也。荣之友,败之敌;贱之友,贵之敌,友者有时也。是以权不可废,废则失本。情不可滥,滥则人忌。人不可密,密则疑生。心不可托,托则祸伏。智者不招己害。能者寻隙求功。饵之以逮,事无悖矣。


  • 罗织经 刑罚卷(11/12)

    ·

    发布于

    修改于

    致人于死,莫逾构其反也;诱人以服,非刑之无得焉。刑有术,罚尚变,无所不施,人皆授首矣。智者畏祸,愚者惧刑;言以诛人,刑之极也。明者识时,顽者辩理;势以待人,罚之肇也。死之能受,痛之难忍,刑人取其不堪。士不耐辱,人患株亲,罚人伐其不甘。人不言罪,加其罪逾彼;证不可得,伪其证率真。刑有不及,陷无不至;不患罪无名,患上不疑也。人刑者非人也,罚人者非罚也。非人乃贱,非罚乃贵。贱则鱼肉,贵则生死。人之取舍,无乃得此乎?


  • 罗织经 问罪卷(10/12)

    ·

    发布于

    修改于

    法之善恶,莫以文也,乃其行焉;刑之本哉,非罚罪也,乃明罪焉。人皆可罪,罪人须定其人。罪不自昭,密而举之则显。上不容罪,无谕则待,有谕则逮。人辩乃常,审之勿悯,刑之非轻,无不招也。或以死拒,畏罪释耳。人无不党,罪一人可举其众;供必无缺,善修之毋违其真。事至此也,罪可成矣。人异而心异,择其弱者以攻之,其神必溃。身同而惧同,以甚其畏而刑之,其人固屈。怜不可存,怜人者无证其忠。友宜重惩,援友者惟招其害。罪人或免人罪,难为亦为也。


  • 罗织经 谋划卷(9/12)

    ·

    发布于

    修改于

    上不谋臣,下或不治;下不谋上,其身难晋;臣不谋僚,敌者勿去。官无恒友,祸存斯须,势之所然,智者弗怠焉。料敌以远,须谋于今;去贼以尽,其谋无忌。欺君为大,加诸罪无可免;枉法不容,纵其为祸方惩。

    上谋臣以势,势不济者以术。下谋上以术,术有穷者以力。臣谋以智,智无及者以害。事贵密焉,不密祸己;行贵速焉,缓则人先。其功反罪,弥消其根;其言设缪,益增人厌。行之不辍,不亦无敌乎?


  • 罗织经 察奸卷(8/12)

    ·

    发布于

    修改于

    原文

    奸不自招,忠不自辩。奸者祸国,忠者祸身。无智无以成奸,其智阴也。有善无以为奸,其知存也。智不逾奸,伐之莫胜;知不至大,奸者难拒。忠奸堪易也。上所用者,奸亦为忠;上所弃者,忠亦为奸。势变而人非,时迁而奸异,其名难恃,惟上堪恃耳。

    好恶生奸也。人之敌,非奸亦奸;人之友,其奸亦忠。道同方获其利,道异惟受其害。奸有益,人皆可为奸;忠致祸,人难以为忠。奸众而忠寡,世之实也;言忠而恶奸,世之表也。惟上惟己,去表求实,奸者自见矣。

    译文

    奸臣不会自己招认,忠臣不能自己辩解。奸臣损害国家,忠臣损害自身。没以智谋不能成为奸臣,他们的智谋都是阴险的。心存良善不会甘当奸臣,他们的良知没有丧失。智谋不超过奸臣, 讨伐他就不能获胜;良知不深远广大,对奸臣就难以抗拒。忠臣和奸臣是可以变换的。君主任用信任的人,虽然是奸臣也被看作忠臣;君主抛弃不用的人,虽然是忠臣也被视为奸臣。时势变了人就不同了,时间变了奸臣就有分别,忠奸的名称难以依赖,只有君主才可作为倚仗。

    喜欢和厌恶产生奸臣。人们的敌人,不是奸臣也被视为奸臣;人们的朋友,是奸臣的也被说成是忠臣。道义相同才能获得利益,道义不同只能得到灾害。当奸臣有好处,人人都可以成为奸臣;当忠臣招致祸患,人们就很难做忠臣了。奸臣多而忠臣少,这是世间真实的现状;说自己是忠臣而厌恶奸臣,这是世间的表面现象。只是献媚君主,只是为了自己,去除表面探求实质,奸臣就自然会显现出来。


  • 罗织经 保身卷(7/12)

    ·

    发布于

    修改于

    原文

    世之道,人不自害而人害也;人之道,人不恕己而自恕也。君子借名,小人爱身。好名羁行,重利无亏。名德不昭,毁谤无损其身;义仁莫名,奸邪不以为患。

    阳以赞人,置其难堪而不觉;阴以行私,攻其讳处而自存。庶人莫与官争,贵人不结人怨。弱则保命,不可做强;强则敛翼,休求尽善。罪己宜苛,人怜不致大害。责人勿厉,小惠或有大得。恶无定议,莫以恶为恶者显;善无定评,勿以善为善者安。自怜人怜,自弃人弃。心无滞碍,害不侵矣。

    译文

    世间的道理,人们不伤害自己却遭到别人的伤害;做人的道理,别人不原谅自己而自己却能原谅。君子爱惜名誉,小人爱护自己。喜好名誉就会束缚人的行为,重视利益就不会吃亏。名望和德行不显示,诽谤就不能伤害他的清誉;义气和仁德不占有,奸诈邪恶的人就不会把他视为祸患。

    表面上称赞别人,让他难以忍受却不知真意;背地里为了利益,攻击他最忌讳的地方而保存自己。老百姓不要和官府争斗,富贵的人不要轻易和人结下怨仇。身为弱者要保全性命,不能逞强显能;身为强者要收敛羽翼,不可求取完美无缺。责备自己应该苛刻,使人怜悯不会招致大的祸害。责罚别人不要过于严厉,小的恩惠有的能带来大的收获。恶没有固定的说法,不把恶当作恶的人显达;善没有固定的评判,不把善视为善的人平安。自己怜惜自己别人才会怜惜你,自己厌弃自己别人自会厌弃。思想没有停滞阻碍,祸害就无法侵犯了。


  • 罗织经 固荣卷(6/12)

    ·

    发布于

    修改于

    原文

    荣宠有初,鲜有终者;吉凶无常,智者少祸。荣宠非命,谋之而后善;吉凶择人,慎之方消愆。君命无违,荣之本也,智者舍身亦存续。后不乏人,荣之方久,贤者自苦亦惠嗣。官无定主,百变以悦其君。君有幸臣,无由亦须结纳。人熟无亲,罪人慎察其宗。人有贤愚,任人勿求过己。

    荣所众羡,亦引众怨。示上以足,示下以惠,怨自消减。大仇必去,小人勿轻,祸不可伏。喜怒无踪,慎思及远,人所难图焉。

    译文

    显达和宠幸有开始的时候,能保持到最后的就很少了;吉利和凶险没有不变的,有智慧的人才能减少祸事。显达和宠幸不是命里就有的,先有谋划后才有成;吉利和凶险是选择人的,谨慎小心才能消免灾祸。君主的命令不要违抗,这是显达的根本,有智慧的人宁肯牺牲自己也要让显达延续下去。后代不缺乏人才,显达才可持久,贤明的人情愿自己吃苦也要惠及后人。官位没有固定不变的主人,用机智多变取悦他的君主。君主都有宠幸的臣子,没有什么原由也必须和他们结交来往。谁都有亲人,惩罚人的时候一定要仔细审察他的家族。人有贤明和愚蠢之别,任用人不要要求他们的才能高过自己。

    显达为众人所羡慕,也能引发众人的怨恨。对上司要表示心满意足,对手下要施以恩惠,怨恨自然就会减少了。大的仇人,一定要铲除,无耻小人不要轻视,祸患就不能隐藏。高兴和愤怒的心情不露踪迹,谨慎思考放眼远处,人们就很难图谋他了。


最新