惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
G
Google Developers Blog
V
V2EX
美团技术团队
H
Help Net Security
月光博客
月光博客
爱范儿
爱范儿
Engineering at Meta
Engineering at Meta
The Cloudflare Blog
U
Unit 42
大猫的无限游戏
大猫的无限游戏
Recent Announcements
Recent Announcements
A
About on SuperTechFans
博客园 - Franky
The GitHub Blog
The GitHub Blog
N
Netflix TechBlog - Medium
人人都是产品经理
人人都是产品经理
博客园 - 司徒正美
MyScale Blog
MyScale Blog
B
Blog
雷峰网
雷峰网
Y
Y Combinator Blog
云风的 BLOG
云风的 BLOG
T
The Blog of Author Tim Ferriss

Yusuf Aytas

When Code Is Cheap, Does Quality Still Matter? Why Crouching Tiger, Hidden Dragon Is a Masterpiece Why We Ignore Advice The Mirror Is Part of the Machine When Too Many Maps Overlap on One Person The Work Runs on Different Maps Your Work Introduces You Trial By Fire The Dude Why Headcount Math Lies Capacity Is the Roadmap The Roadmap Is Not the System Torres del Paine W Trek Escaping Status Theater Incentives Drive Everything Scaling Culture Without Dilution What Good Looks Like Why Airport Security Feels Random Why Politics Appear How to Work with Me The Janus Protocol Multi-Horizon Delivery Framework What Good Execution Looks Like Managing Your Manager Why Kingdom of Heaven’s Director’s Cut Is Better AI Broke Interviews Most of What We Call Progress Managers Have Been Vibe Coding All Along Stop Wasting Brainpower Why Over-Engineering Happens
Factory
Yusuf Aytas · 2010-01-10 · via Yusuf Aytas

Published · 1 min read

Bu yazımda size Factory adındaki nesneye dayalı yazılım şablonunu (Object-Oriented Design Pattern) anlatacağım. Factory şablonunu şöyle anlatayım. Painte benzer bir program yazmanız gerekiyor ve bu programda  kullanıcının birden bir çok şekile ihtiyacı var. Kullanıcı şekil seçeneklerinden birine basar ve onunla boyama işlemini yapar. Tıpkı kullanıcı gibi bizde yazılımsal olarak bir şekli seçip, o şekli yaratıyoruz. Daha programlamacı gözüyle bakarsak, Shape adında genel bir interface yazıyoruz. Bu interfacesi kullanan Rectangular, Circle vb sınıflar var. Biz her sınıfların sadece Shape sınıfından haberdar olmalısını istiyoruz çünkü çocuk sınıfların(child classes) detaylarının bilinmesini istemiyoruz. Dolayısıyla, yeni bir obje yaratılması için Factory adlı sınıfa bir parametreyle (bunun ne olacağını ve türünü siz seçebilirsiniz) emir veriyoruz. Factory de bu parametreye göre bize istediğimiz sınıfın bir nesnesinden dönüyor. Böylece çocuk sınıfların detaylarını diğer nesnelerden saklamış oluyoruz.

Factory tasarım deseni şemasıFactory tasarım deseni şeması

public interface Shape{}
public class Circle implements Shape{}
public class Rectangular implements Shape{}
public class Factory{
	public Shape getShape(String shapeName){
		if(shapeName.equals("circle"))
			return new Circle();
		else if(shapeName.equals("rectangular"))
			return new Rectangular();
		else
			return null;
	}
}