炒股日记
2024年1234562024年10月入股市 10月收益16.76% 本金1w 11月收益-24.32% 本金1.8w 12月收益-10.81 本金2w股市就是一个大坑,国家队打着牛市的噱头,实则为了收割散户,为国家化债,牛短熊长。从盈利到亏损,慢慢的心态也变了。现在就希望在2025年能回本,销户跑路。
2025年123452025年1月月收益-6.13% 本金2.6w 亏损 1172元2025-01-10 目前持仓: 抄底进入 中百集团 500支 成本价8.88 亏损 -0.023% -1元 剩余仓位 纳指ETF 10800支 成本 1.256 亏损-0.728% -98元
设计模式之建造者模式
设计模式之建造者模式定义12建造者模式(Builder):将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示建造者模式是在当创建复杂对象的算法应该独立于该对象的组成部分以及他们的装配方式时适用的模式
优点123可以创建复杂对象,同时保持构建代码的清晰性。允许对象有不同的表示(如这里的游戏PC和办公PC)。将对象的构建过程和表示分离。
代码解释12345产品(Product):Computer 类代表我们要构建的复杂对象。抽象建造者(Builder):ComputerBuilder 接口定义了构建产品各个部分的方法。具体建造者(Concrete Builder):ConcreteComputerBuilder 类实现了 ComputerBuilder 接口,负责实际构建 Computer 对象。指挥者(Director):Director 类控制构建过程,定义了不同类型的电脑构建顺序。客户端(Client):BuilderPatternDemo 类中的 main 方法演示了如何使用建造者模式。
代码1234567891011121314151617181920 ...
设计模式之外观模式
设计模式之外观模式定义123外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。场景:在对接复杂的旧的系统时,新功能可以作为一个子系统 开发一个外观 Facade 类,来提供设计粗糙或高复杂的遗留代码的比较清晰的简单接口,让新系统与 Facade对象交付, Facade与遗留代码交互所有复杂工作。
代码解释123TradingFacade类作为一个高层接口,简化了客户端的操作。客户端不需要直接与Stock和Fund类交互,而是通过TradingFacade进行所有操作。这种设计降低了系统的耦合度。如果将来需要修改Stock或Fund类的实现,只需要相应地调整TradingFacade类,而不会影响到使用这个外观的客户端代码。外观类还可以轻松地添加新的功能。例如,如果我们想要添加一个同时买入多只股票的功能,我们只需要在TradingFacade类中添加一个新方法,而不需要修改客户端代码。
代码1234567891011121314151617181920212223242526272829303132333 ...
设计模式之迪米特法则
设计模式之迪米特法则定义12如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。
代码解释123Developer:代表开发人员。TeamLeader:代表团队领导,他不直接与开发人员沟通,而是将任务委托给IT部门经理。ITManager:代表IT部门经理,他直接与开发人员沟通并分配任务。
代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263// 员工类class Developer { private String name; public Developer(String name) { this.name = name; } public void workOnTask(String task) { System ...
设计模式之模板方法模式
设计模式之模板方法模式定义1定义一个操作中的算法的骨架,将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的特定步骤。
优点1减少代码冗余,避免重复代码
代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172package template;// 抽象类,定义了模板方法abstract class Beverage { // 模板方法,定义了制作饮料的算法步骤 final void prepareRecipe() { boilWater(); brew(); pourInCup(); addCondiments(); } // 具体步骤 void boilWater() { System.out.p ...
设计模式之原型模式
设计模式之原型模式定义1234567原型模式(Prototype): 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。拷贝又分深拷贝和浅拷贝: 浅拷贝:被复制对象的所有变量都含有与原来相同的值,而所有对象的引用都仍然指向原来的对象。 说人话就是:事实上只是copy了一个原来对象的引用 深拷贝:把引用对象的变量指向复制过来的新对象,而不是原有的被引用的对象 说人话就是:就是类似于new了一个对象
代码解释12345678910CoverLetter 接口定义了克隆方法和其他必要的操作。BasicCoverLetter 类实现了 CoverLetter 接口,提供了一个基本的求职信模板。CoverLetterPrototypeManager 类管理不同类型的求职信原型。在客户端代码中,我们使用原型管理器创建求职信,然后自定义每封信的内容。这种方法的优点是:我们可以轻松创建多个相似但略有不同的求职信。如果需要添加新类型的求职信,只需在原型管理器中注册新的原型即可。它提供了一种灵活的方式来创建对象,而无需指定它们的确切类。
代码12345678 ...
设计模式之工厂模式
设计模式之工厂模式定义12工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
优点123456遵循开闭原则:可以在不修改现有代码的情况下引入新的产品类型。遵循单一职责原则:将产品创建代码放在程序的单一位置,使得代码更容易维护。松耦合:工厂方法模式将产品的使用和产品的创建分离,使它们互相独立、互不影响。客户端代码与具体产品解耦:客户端只需要知道抽象产品类,而不需要知道具体产品类。灵活性高:可以通过继承的方式增加新的工厂,非常容易扩展。可以实现平行类层次结构:每个工厂对应一个产品,形成一个完整的平行结构。
缺点123456代码复杂度增加:相比于简单工厂模式,工厂方法模式需要更多的类和接口。可能导致类的个数增加:每增加一个产品就需要增加一个具体工厂类。抽象工厂和具体工厂的角色没有太多变化:如果只有一个具体工厂类,那么就没有必要使用工厂方法模式。客户端代码需要处理选择合适的工厂类:虽然客户端不需要知道具体的产品类,但仍需要知道每个工厂生产什么样的产品。难以支持新种类的产品:如 ...
8月份打工日记
康熙字典API接口1234567先把康熙字典 api 接入系统,或者是源码接入系统。作为 p0,这样就可以自己查询五行。增加康熙笔画的框选任务量:API的寻找(尝试使用开源 但是满足不了需求),于是自己写脚本借鉴抓取了康熙大帝的数据库接入后目前使用在字库中,可以看到康熙字画、简笔画、五行等康熙字典的后续业务支持: 字库、名库中有相关康熙信息,支持笔画筛选、生成名字。比如可选择名字的第一个字为: [简笔画,6] 或者 [康熙笔画, 10] 系统会根据选择的条件去查询相关符合条件的名字生成给客户。(暂不支持4字名) 三才五格目前还没实际应用上。
写字机二代1234567891011第一代采用的是websocket通信,python端采用队列进行存储任务。由于写字机不给力经常挂掉,导致第一代软件需要重启导致队列订单丢失。新需求:想要加急订单、想在web看到写字机的任务列表由于队列的形式无法满足现在的要求所以有了写字机第二代。新型版本: 采用数据库存储订单防止订单丢失,下多少都可以 反正不会丢。 支持编辑订单加急、切换写字机(为后续多台写字机做铺垫) 可以 ...
设计模式之代理模式
设计模式之代理模式定义1代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问
应用场景12341:远程代理:为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实2:虚拟代理:根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象3:安全代理:用来控制真是对象访问时的权限4:智能指引:当调用真实的对象时,代理处理另外一些事
代码解释 代理表白为别人做嫁衣12345678910Confession 接口: 定义了 confess() 方法,这是表白的抽象行为。RealConfessor 类: 实际表白者,实现了直接表白的行为。ProxyConfessor 类: 代理表白者(朋友),它持有一个 RealConfessor 的引用。 在 confess() 方法中,它首先介绍自己的角色。然后调用实际表白者的 confess() 方法。最后,还会添加一些额外的信息来支持表白。ProxyConfessionDemo 类:客户端代码,展示了如何使用代理表白。使用特点: 控制访问:代理在实际表白前后添加了额外的行为。 ...
设计模式之装饰模式
设计模式之装饰模式定义123装饰模式(Decorator Pattern): 动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。注:装饰模式是利用SetComponent 来对对象进行包装的,不需要关心如何被添加到对象链种。个人理解:就是将一些额外的功能独立出来
优点123可以在不修改现有代码的情况下,动态地添加新功能。可以将多个装饰器组合使用,以实现更复杂的功能组合。遵循开闭原则,对扩展开放,对修改关闭
代码解释12345Coffee 接口定义了基本的组件接口,包含 getCost() 和 getDescription() 方法。SimpleCoffee 类是具体组件,实现了 Coffee 接口。CoffeeDecorator 是一个抽象装饰器类,它也实现了 Coffee 接口,并持有一个 Coffee 对象。MilkDecorator 和 SugarDecorator 是具体的装饰器,它们扩展了 CoffeeDecorator,并在原有咖啡的基础上添加了新的行为(增加成本和描述)。在 main 方法中,我们展示了如何使用这些装饰器来动态地创建不同种 ...